Подтвердить что ты не робот

Как проверить, существует ли файл в пути include?

Вы получаете текущий путь include в PHP, используя get_include_path()

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

4b9b3361

Ответ 1

До PHP 5.3.2 вы можете разделить путь и проверить каждый путь в цикле:

$find = 'file.php'; //The file to find
$paths = explode(PATH_SEPARATOR, get_include_path());
$found = false;
foreach($paths as $p) {
  $fullname = $p.DIRECTORY_SEPARATOR.$find;
  if(is_file($fullname)) {
    $found = $fullname;
    break;
  }
}
//$found now contains the file to be included, or false if not found

Ответ 2

Начиная с PHP 5.3.2 вы можете использовать

который будет

Возвращает строку, содержащую разрешенное абсолютное имя файла, или FALSE при сбое.

Пример из руководства:

 var_dump(stream_resolve_include_path("test.php"));

В приведенном выше примере будет выведено нечто похожее на:

 string(22) "/var/www/html/test.php"