web-dev-qa-db-fra.com

vérifier si l'image existe php

Je suis en train de coder un portail immobilier. Je suis coincé dans la vérification des images. Je sais comment vérifier si une URL d'image est définie. Mais le problème consiste à détecter s’il existe réellement une image valide à l’URL.

exemple: http://property.images.themovechannel.com/cache/7217/6094437/img_main.jpg

L'URL de cette image existe, mais elle est maintenant supprimée. Elle s'affiche donc en blanc dans la page de recherche de propriétés. Existe-t-il un moyen de vérifier qu’il existe une image à l’URL, puis d’afficher un paramètre fictif s’il n’existe pas?.

quelque chose comme 

$imageURL = "http://property.images.themovechannel.com/cache/7217/6094437/img_main.jpg";

if (exists($imageURL)) { display image } 
else { display placeholder }

Mais tout ce que cela fait est de vérifier que l’url existe, ce qu’il ne contient pas d’image.

Merci d'avance

11
Barry Connolly

Utilisez getimagesize() pour vous assurer que l’URL pointe vers une image valide.

if (getimagesize($imageURL) !== false) {
    // display image
}
25
user703016
function exists($uri)
{
    $ch = curl_init($uri);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    return $code == 200;
}
8
Alex Pliutau
function is_webUrl($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;
    }
}

if(is_webUrl('http://www.themes.tatwerat.com/wp/ah-personal/wp-content/uploads/2016/08/features-ah-wp-view.jpg')) {
   echo 'yes i found it';
}else{
   echo 'file not found';
}
0
Abdo-Host