2015-10-23 2 views
0

У меня есть два PHP файлы (не в том же каталоге) и один файл свойств, например:Выполнить один PHP файл из другой - без модифицирующих путей

a.php 
----- 
<?php 
echo "one"; 
include("/path/to/b.php"); 
echo "three"; 

и

b.php 
----- 
<?php 
$num = file_get_content("b.properties"); 
echo $num; 

где b.properties имеет two в нем.

С a.php и b.php не в той же папке, то include в a.php вызывает свойства файла не загружается должным образом.

Как я могу это исправить? Обратите внимание, что я не могу изменить b.php или b.properties или, очевидно, это будет тривиальный вопрос.

+1

Можете ли вы 'a.php' в той же папке, что и' b.php'? Я не уверен, насколько хорошо понимаю вашу проблему. Когда вы пишете вопрос об ошибке, __always__ включают сведения об ошибке. Добавьте отчет об ошибках в начало вашего файла (ов) сразу после открытия PHP-тега, например '

+0

Вы не можете делать то, что хотите, без изменения пути, указанного в 'file_get_contents', в' b.php'. Это проблема с использованием относительных путей. Произвольные ограничения, которые вы создаете вокруг этой проблемы, заставляют меня поверить, что это надуманно и, скорее всего, [проблема X/Y] (http://meta.stackexchange.com/questions/66377/what-is-the-xy- проблема), которые не очень приветствуются в StackOverflow. – Sherif

+0

Вы можете добавить каталог b.php в директиву php include. Тогда путь не будет иметь большого значения, хотя я не понимаю, почему вы не можете редактировать путь ... http://php.net/manual/en/function.set-include-path.php – Chris

ответ

2

PHP предоставляет функцию chdir для изменения каталога curernt PHP. Я думаю, вы можете изменить текущий каталог PHP в папку b.php, прежде чем включить b.php и установить его после включения.

a.php 
----- 
<?php 
echo "one"; 
chdir('/path/to'); 
include("b.php"); 
chdir(__DIR__); 
echo "three"; 
Смежные вопросы