Как включить только в том случае, если файл существует

Мне нужна функция include / statement, которая будет включать файл, только если он существует. Есть ли в PHP?

Вы можете предложить использовать @include но есть проблема с этим подходом – если файл будет включен, PHP не будет выводить предупреждения, если парсер найдет что-то неправильно во включенном файле.

 if(file_exists('file.php')) include 'file.php'; 

Это должно делать то, что вы хотите

Попробуйте использовать file_exists()

 if(file_exists($file)){ include $file; } 

Основываясь на ответе @ Select0r, я в конечном итоге использовал

 if (file_exists(stream_resolve_include_path($file))) include($file); 

Это решение работает, даже если вы пишете этот код в файле, который был включен из файла в другой каталог.

Как насчет использования file_exists перед include ?

Проверьте функцию stream_resolve_include_path .

Я думаю, вы должны использовать file_exists , потому что если бы был такой include, он бы был указан здесь: http://php.net/manual/en/function.include.php

@ подавляет сообщения об ошибках.

вы используете облако:

 $file = 'script.php'; if(file_exists($file)) include($file); 
 function get_image($img_name) { $filename = "../uploads/" . $img_name; $file_exists = file_exists($filename); if ($file_exists && !empty($img_name)) { $src = '<img src="' . $filename . '"/>'; } else{ $src = ''; } return $src; } echo get_image($image_name); 
 @include($file); 

Использование в начале игнорирует любую ошибку, которую может генерировать эта функция. Не злоупотребляйте этим, так как это битва, чем проверка с помощью if, но это кратчайший вариант кода.

 <?php if(file_exists('file.php')) include 'file.php'; }else{ header("Location: http://localhost/); exit; }