include () молча завершается ошибкой при вызове из включенного файла - PullRequest
1 голос
/ 11 марта 2010

У меня проблема с включением файлов на удаленном сервере (но на моей локальной конфигурации Windows PHP + Apache все работает нормально ...).

Проблема возникает, когда я пытаюсь включить файл из включенного файла следующим образом:

Содержимое index.php:

<?php

include("Dir1/File1.php");

?>

Содержимое Dir1 / File1.php:

<?php

include("File2.php");
include("File3.php");

echo("<p>File1 include done.</p>");

?>

Содержимое Dir1 / File2.php

<?php
echo("<p>File2 include done.</p>");
?>

Содержимое Dir1 / File3.php

<?php
echo("<p>File3 include done.</p>");
?>

File2.php и File3.php не оцениваются, но когда я изменяю, например, File2.php на File99.php (некоторый несуществующий файл), я получаю стандартное предупреждение о том, что файл не существует.

Но когда я изменяю содержимое Dir1 / File1.php, чтобы включить файлы, подобные этому:

<?php

include("Dir1/File2.php");
include("Dir1/File3.php");

echo("<p>File1 include done.</p>");

?>

тогда файлы оцениваются ...

Ответы [ 3 ]

1 голос
/ 11 марта 2010

звучит так, будто у вас нет "." (текущая папка) в вашем пути включения. Вы должны изменить свой файл php.ini, чтобы добавить его. Вы можете узнать значение на вашем живом и тестовом сервере, выполнив

<?php
phpinfo();
?>
0 голосов
/ 22 апреля 2011

это работает каждый раз для меня:

<?php require_once($_SERVER['DOCUMENT_ROOT'] . '/path/to/File3.php'); ?>
0 голосов
/ 11 марта 2010

Попробуйте использовать вместо полного пути:

include(dirname(__FILE__) . "/Dir1/File3.php");
...