За последние 24 часа нас посетили 49039 программистов и 1805 роботов. Сейчас ищут 939 программистов ...

Как сменить текущий каталог?

Тема в разделе "PHP для новичков", создана пользователем sitev, 8 фев 2010.

  1. sitev

    sitev Активный пользователь

    С нами с:
    14 фев 2009
    Сообщения:
    36
    Симпатии:
    0
    Есть два файла index.php и my.php, то проблем подключения my.php из index.php нету...

    Теперь я файл my.php положу в каталог mydir, а картинки, которые нужны для my.php положу в каталог mydir/images. Затем подключаю в index.php

    include "mydir/my.php";

    или

    $s = file_get_contents("mydir/my.php");
    echo $s;

    Картинки отказываются работать... Как указать текущий каталог для файла my.php, чтобы картинки подключились?
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    basedir(__FILE__);
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    жесть! ты еще по http запроси
     
  4. sitev

    sitev Активный пользователь

    С нами с:
    14 фев 2009
    Сообщения:
    36
    Симпатии:
    0
    оперативно, только неработает...
    Fatal error: Call to undefined function basedir() in.....
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
  6. sitev

    sitev Активный пользователь

    С нами с:
    14 фев 2009
    Сообщения:
    36
    Симпатии:
    0
    мдааа........

    куда ещё прыгнуть, чтобы получить нормальный ответ? )))))
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    надо задать нормальный вопрос
     
  8. sitev

    sitev Активный пользователь

    С нами с:
    14 фев 2009
    Сообщения:
    36
    Симпатии:
    0
    вопрос, кстати, нормальный :) попробую разжевать... (надеюсь, мне потом тоже разжуют)

    есть файлы index.php, my.php и image1.jpg

    index.php
    Код (Text):
    1. <?php include "my.php"; ?>
    my.php
    Код (Text):
    1. <img src="image1.jpg">
    теперь я создаю каталог mydir и переношу туда файлы my.php и image1.jpg, а файл index.php меняю вот так:

    index.php
    Код (Text):
    1. <?php include "mydir/my.php"; ?>
    но картинку я не вижу... что сделать, чтобы не менять файл my.php ???
     
  9. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    my.php
    Код (Text):
    1. <img src="mydir/image1.jpg">
    или
    Код (Text):
    1. <img src="<?php echo dirname(__DIR__);?>/image1.jpg">
     
  10. sitev

    sitev Активный пользователь

    С нами с:
    14 фев 2009
    Сообщения:
    36
    Симпатии:
    0
    Эти примеры не подходят... нужно картинкам в my.php указывать относительный путь, а не абсолютный... это возможно?
     
  11. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    если переместил картинку в другую дерикторию - то почему думаешь что путь до неё сам изменится ?

    -------
    мдя ...
    http://ru.php.net/manual/en/function.dirname.php#70709

     
  12. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    1. в index.php вычисляешь текущий рутовфй каталог
    2. в my.php вычисляешь разницу в каталога и их вложенности
    3. в my.php дописываешь путь в print("<img scr='$shift/image01.jpg'>");
     
  13. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    но то что ты делаешь, сдается мне, изначально кривовато...

    задача какая начальная стоит? без реализации?
     
  14. sitev

    sitev Активный пользователь

    С нами с:
    14 фев 2009
    Сообщения:
    36
    Симпатии:
    0
    Задача стоит следующая - создать конструктор сайтов...

    Как предполагал сделать - любой желающий подгружает шаблон дизайна сайта, например index.html + css + картинки...
    в директорию templates/template1 для шаблона №1.

    Получается, что шаблон отлаживается как site-name/index.html, а после загрузки будет должен работать как site-name/templates/template1/index.html

    И в последующем, когда сайт уже был создан, он опять же заливается new-site-name/index.html

    Вижу для себя два пути решения задачи:
    1. Заниматься парсингом и все src=" заменять на src="templates/template/
    2. Либо шаблоны заливать по адресу template1.site.ru
     
  15. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ох не тот велосипед ты изобретаешь... ох не тот. да и не изобретатель ты...
     
  16. VItalijs

    VItalijs Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
    да работать с путями поначалу трудно.
    PHP:
    1. http://phpfaq.ru/na_tanke
    . там четко описано что php работает на сервере. На ваш сайт человек заходит по линку www.example.com/index.php на сервере вызывается %document_root%/index.php, в нем происходит include %какая_угодно_хрень% в %какая_угодно_хрень% у вас есть строка
    HTML:
    1.  <img src="image1.jpg">
    и в результате сервер вернет пользователю
    HTML:
    1.  <img src="image1.jpg">
    браузер увидев такую конструкцию ломанется искать картинку по адресу www.example.com/image1.jpg потому что путь относителен index.php а не %какая_угодно_хрень%.

    блин, боюсь я все равно не доступно выразил мысль ((
     
  17. sitev

    sitev Активный пользователь

    С нами с:
    14 фев 2009
    Сообщения:
    36
    Симпатии:
    0
    Наоборот, всё понятно...

    Просто хочется идеального мира, когда ты в файле site.ru/mydir/file.php написал бы:

    Код (Text):
    1. <img src="image1.jpg">
    а сервак вернул бы в браузер

    Код (Text):
    1. <img src="mydir/image1.jpg">