Мне нужна функция 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; }