Позвольте мне сначала продемонстрировать мою файловую структуру.
/www/
myfile.php
anotherC.php
a/
b.php
c.php
Код внутри myfile.php
:
<?php
include_once("a/b.php");
?>
Код внутри b.php
:
<?php
include_once("c.php");
?>
И, наконец, внутри c.php
:
<?php
echo "hello i'm C.php";
?>
Итак, когда я вызываю www/myfile.php
, я получаю вывод:
привет, я C.php
Эти работают нормально. Но позвольте мне изменить b.php
на
<?php
include_once("../anotherC.php"); //or include_once("./c.php"); (it won't work too)
?>
Теперь, когда я звоню www/myfile.php
, я получаю сообщение об ошибке:
Предупреждение: include_once(../anotherC.php): не удалось открыть поток: Нет такого файла или каталога в /home/hasib/Desktop/www/a/b.php в строке 2 Предупреждение: include_once(): Не удалось открыть '. ./anotherC.php' для включения (include_path='.:/usr/share/php:/usr/share/pear') в /home/hasib/Desktop/www/a/b.php в строке 2
Теперь у меня вопрос: почему include_once("c.php");
сработало идеально??
$_SERVER['DOCUMENT_ROOT']
). Преимущества: вы избавляете себя от головной боли; Вы можете перемещать файлы, не заботясь об изменении путей в фактическом коде; Если вы удалите промежуточные файлы, вы все равно сможете получить доступ к нужному файлу из последнего. так далее... - person aleation   schedule 23.01.2014