Как проверить URL-адрес изображения существует или нет в php
Я работаю вокруг получения изображения URL из базы данных и показать изображение в php, как показано ниже
<?php
$row['blog_url'] = "http://www.nasa.gov/images/content/711375main_grail20121205_4x3_946-710.jpg";
<img src="<?php echo $row['blog_url']; ?>" height="200" width="200" alt="image"/>
?>
но я хочу отобразить no_imgae.jpeg, если изображение не загружается с указанного URL-адреса как blog_url
есть ли способ узнать изображение существует или нет в php
заранее спасибо...
3 ответа
Решение
Эта функция решит вашу проблему:
function checkRemoteFile($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
// don't download content
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(curl_exec($ch)!==FALSE)
{
return true;
}
else
{
return false;
}
}
Просто передайте image url
в этом function
и он вернется yes
если изображение существует иначе false
$file = "http://www.nasa.gov/images/content/711375main_grail20121205_4x3_946-710.jpg";
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
}
else {
$exists = true;
}
<?
$img = $row['blog_url'];
$headers = get_headers($img);
if(substr($headers[0], 9, 3) == '200') {
?>
<img src="<?php echo $img; ?>"/>
<?
} else {
?>
<img src="noimage.jpg"/>
<?
}
?>