Может быть, это потому, что ваша файловая иерархия выглядит следующим образом?
/
- file/
-- config/
---config.txt
--- yyy.php
- xxx.php
xxx.php и yyy.php не в одном каталоге.Когда вы включаете xxx.php в yyy.php, parse_ini_file
будет читать файл с точки зрения yyy.php .Вот почему вам нужно изменить каталог, потому что когда вы включаете файл, все его чтение директории изменяется.
Решение, конечно, было написано другими (используйте абсолютный путь), или вы можете просто переместитьфайлы к той же директории.Я просто пишу это для полного объяснения.
РЕДАКТИРОВАТЬ:
Конечно, я просто предполагаю вашу файловую иерархию.Просто попробуйте представить иерархию файлов и посмотрите, не находятся ли xxx.php и yyy.php в одном каталоге.Это может быть проблемой.
РЕДАКТИРОВАТЬ 2: Я пробовал ситуацию, которую вы пишете в вопросе, и она работает без проблем.Это код, который я сделал:
xxx.php:
<?php
$config = parse_ini_file('config/config.txt');
yyy.php:
<?php
require_once "xxx.php";
Файловая иерархия:
/
- config/
-- config.txt
- xxx.php
- yyy.php
Работает просто отлично.Может быть, ваш yyy.php включен в другой файл и вызывается из этого файла?