Получение изображения с другого сервера - PullRequest
1 голос
/ 28 января 2012

Скажем, в данном примере это изображение: http://www.basitansari.com/wp-content/uploads/logoaba.png, которое размещено на веб-сайте A.

Я вызываю это изображение на веб-сайт B с тегом <img>.Если владелец сайта А удаляет это изображение, то как я могу узнать, что изображение было удалено с помощью PHP?Если владелец сайта A удаляет изображение, я хочу показать notfound.jpg изображение.Должен ли я использовать cURL для этой цели или что-то еще?

Ответы [ 4 ]

2 голосов
/ 28 января 2012

Проверка изображения на стороне сервера определенно возможна, но это может быть не лучшим решением. Это означает, что все действительные изображения будут загружены дважды (один раз на стороне сервера и снова клиентом). Лучшим способом может быть использование JavaScript для обработки поврежденных изображений. Следующий код будет действовать только в случае ошибки при загрузке изображения, заменив его указанным вами изображением:

<script type="text/javascript">
function brokenImage( obj ) {
    obj.onerror = '';
    obj.src = 'path/to/notfound.jpg';
    return true;
}
</script>
<img onerror="brokenImage(this);" src="broken.jpg" alt="" />
1 голос
/ 28 января 2012
if (!$fp = fopen('http://www.basitansari.com/wp-content/uploads/logoaba.png', 'r')) {
  // The image cannot be retrieved, handle it here.
} else {
  fclose($fp);
}

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

0 голосов
/ 28 января 2012

Вы можете позвонить напрямую: проверьте, существует ли источник изображения, используя fopen, и, если нет, покажите notfound.jpg.@ используется для подавления предупреждения

<img src="<?php if (@fopen("http://www.basitansari.com/wp-content/uploads/logoaba.png", "r")) {echo 'http://www.basitansari.com/wp-content/uploads/logoaba.png';} else{echo 'notfound.jpg';}?>" />
0 голосов
/ 28 января 2012

Вы должны вызвать этот URL с помощью метода HEAD и проверить, является ли код состояния 404 (не найден) или 200 (ОК)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...