tvolf
Новичок
Нюансы использования подключаемых файлов с относительными путями
Всем привет.
Такой, возможно, чайниковый вопрос. Имеется следующая структура файлов и директорий сайта:
то есть, в корне лежит index.php, а по пути /MyDir1/MyDir2 лежат 2 файла:
MyClass.php и Config.ini.
Содержимое index.php:
===
===
Содержимое MyClass.php:
===
===
Ну а Config.ini представляет обычный ini-файл.
В чем проблема. Если Config.ini лежит в /MyDir1/MyDir2, то скрипт index.php отрабатывает без ошибок, показывая содержимое Config.ini. Если же я переношу Config.ini в корень сайта, скрипт уже не работает, выдавая информацию о том, что файл Config.ini не найден (Warning: parse_ini_file(Config.ini) [function.parse-ini-file]: failed to open stream: No such file or directory in [..]\MyDir1\MyDir2\MyClass.php on line 5).
Если же я добавляю в include_path текущий каталог (set_include_path('.;MyDir1')), то Config.ini начинает уже нормально находиться и в корне сайта.
Подскажите, плиз, в чем может быть дело ? То есть, почему в первом случае, когда Config.ini лежит по пути MyDir1/MyDir2 он нормально отыскивается ? Ведь рабочим каталогом для обоих скриптов является именно корневой каталог, а каталог /MyDir1/MyDir2 в include_path даже не упоминается. Вообще, какова схема поиска файлов по относительным путям ? Не исключено просто, что я неправильно себе всё представляю
Всем привет.
Такой, возможно, чайниковый вопрос. Имеется следующая структура файлов и директорий сайта:
Код:
/-|
|
index.php
MyDir1 --|
|
MyDir2 --|
|
MyClass.php
Config.ini
MyClass.php и Config.ini.
Содержимое index.php:
===
PHP:
<?php
error_reporting(E_ALL | E_STRICT);
set_include_path('MyDir1');
require_once('MyDir2/MyClass.php');
echo 'WorkDir1 = '. getcwd() . '<br>';
$ini_arr = MyClass :: parse('Config.ini');
print_r($ini_arr);
Содержимое MyClass.php:
===
PHP:
<?php
class MyClass {
public static function parse($fname) {
echo 'WorkDir2 = '. getcwd() . '<br>';
return parse_ini_file($fname);
}
}
Ну а Config.ini представляет обычный ini-файл.
В чем проблема. Если Config.ini лежит в /MyDir1/MyDir2, то скрипт index.php отрабатывает без ошибок, показывая содержимое Config.ini. Если же я переношу Config.ini в корень сайта, скрипт уже не работает, выдавая информацию о том, что файл Config.ini не найден (Warning: parse_ini_file(Config.ini) [function.parse-ini-file]: failed to open stream: No such file or directory in [..]\MyDir1\MyDir2\MyClass.php on line 5).
Если же я добавляю в include_path текущий каталог (set_include_path('.;MyDir1')), то Config.ini начинает уже нормально находиться и в корне сайта.
Подскажите, плиз, в чем может быть дело ? То есть, почему в первом случае, когда Config.ini лежит по пути MyDir1/MyDir2 он нормально отыскивается ? Ведь рабочим каталогом для обоих скриптов является именно корневой каталог, а каталог /MyDir1/MyDir2 в include_path даже не упоминается. Вообще, какова схема поиска файлов по относительным путям ? Не исключено просто, что я неправильно себе всё представляю
