У меня проблемы с include, когда включаемый файл сам включает другой файл, но ссылается на него с префиксом точки. Например, есть три файла - inc1.php , inc2.php и subdir / test.php , содержимое которых -
подкаталог / test.php:
set_include_path(get_include_path().":../:../.");
require("inc1.php");
inc1.php:
require("./inc2.php");
inc2.php
echo "OK";
Это дерево включения, показанное здесь, завершается с ошибкой Не удалось открыть поток: нет такого файла или каталога Ошибка. Это работает, если inc1.php содержит простой require ("inc2.php"); , без префикса "./". Я добавил "../." к пути включения как попытке заставить его работать, но это не имело никакого эффекта.
Помимо выполнения включения с префиксом "./", какое здесь решение, если предположить, что inc1.php и inc2.php недоступны для записи, и вы можете изменить только subdir / test.php? Как вы по-прежнему можете включить inc1.php из test.php?
Для справки, я использую PHP 5.2.9.