Как проверить, существует ли файл по пути включения? - PullRequest
13 голосов
/ 18 мая 2011

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

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

Ответы [ 2 ]

32 голосов
/ 18 мая 2011

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

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

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

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

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

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

 string(22) "/var/www/html/test.php"
9 голосов
/ 18 мая 2011

До 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...