require () не удается, даже если файл file_exists ()

Вот мой код:

if (file_exists('config.php')) { require('config.php'); // This is line 38 } 

Что-то порождает ошибку:

Предупреждение: require (config.php) [function.require]: не удалось открыть поток: такой файл или каталог отсутствует в /path/name/file.php в строке 38

Как это возможно?

Обновление: работает следующее:

 if (file_exists(getcwd(). '/config.php')) { require(getcwd(). '/config.php'); } 

попробуйте игнорировать путь включения:

 if (file_exists('config.php')) { require('./config.php'); // This is line 38 } 

если он работает, вам не хватает. каталог в путь include, и вы должны выбрать его включение или использование относительных имен файлов путей

Вы можете изменить свой include_path с помощью директивы конфигурации php (если вы можете изменить файл конфигурации php) или использовать get_include_path () и set_include_path () для каждой файловой / проектной базы

ex: set_include_path('.'. PATH_SEPARATOR . get_include_path()); в вашей первой строке php (или в общем файле конфигурации);

Источники:

  • включить php manual
  • include_path
  • set_include_path
  • get_include_path

Попробуйте абсолютный путь. Использование dirname(__FILE__) .

 require(dirname(__FILE__) . '/config.php'); 

PHP include и require работать одинаково и использовать include include ( include ). Поэтому он будет использовать этот путь для поиска файла, и если вы его не установили правильно, он не будет выглядеть в текущем каталоге.

Используйте get include path, чтобы узнать значение для этого.