PHP: Проверьте изображение существует на URL

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

Мое беспокойство, достаточно ли моей функции для сбора данных?

Моя текущая функция php, которая работает, когда уверен, что изображение существует.

function get_image_by_id($ID) {

$url = 'http://proweb/process/img/'.$ID.'.jpg';

if(empty($url)){

return 'default.jpg';

}else{

return $url;

}

}

Мой index.php

<img src="<?php echo get_image_by_id($ID);?>" />

0

Решение

Вот CURL Также может быть полезным, проверил это и работает нормально. Здесь мы используем curl для получения HTTP-кода ответа для URL. Если код состояния 200 это значит, что существует.

function get_image_by_id($ID)
{
$url = 'http://proweb/process/img/' . $ID . '.jpg';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
$info = curl_getinfo($ch);
if ($info["http_code"] != 200)
{
return 'default.jpg';
}
else
{
return $url;
}
}
1

Другие решения

Вы можете использовать PHP is_file()определить.

if (is_file($url) {
//its a file
}

Вы можете использовать троичный оператор (один вкладыш)

    return is_file($url) ? $url : 'default.jpg';
1

вы можете использовать как это

<?PHP
function get_image_by_id($ID) {

$url = 'http://proweb/process/img/'.$ID.'.jpg';
// Checks to see if the reomte server is running
if(file_get_contents(url) !== NULL)
{
return  $url;
}
else
{
return 'default.jpg';
}
}
?>
0

function get_image_by_id($ID) {
if(empty($url)){
$url = 'http://proweb/process/img/default.jpg;
}else{
$url = 'http://proweb/process/'.$ID.'.jpg';
}
return $url
}
-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector