Ответ 1
if(file_exists('file.php'))
include 'file.php';
Это должно делать то, что вы хотите
Мне нужен оператор include
function/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);
Использование в начале, игнорирует любую ошибку, которую может генерировать эта функция. Не злоупотребляйте этим, так как IT WAY SLOWER, чем проверка с помощью if, но это кратчайший вариант кода.
<?php
if(file_exists('file.php'))
include 'file.php';
}else{
header("Location: http://localhost/);
exit;
}