2017-11-03 16 views
0

Ich bekomme eine Bildquelle von einer URL dynamisch, aber manchmal die URL zurückkehrt leer oder das Bild existiert nicht, so dass ich eine PHP Funktion erstellt, um zu überprüfen, ob die Bildquelle existiert oder nicht Ich kann meinen Benutzern ein Standardbild anzeigen, wenn das Bild nicht zugänglich ist.PHP: Überprüfen Bild existiert auf URL

Mein Anliegen, ist meine Funktion genug, um die Daten zu erfassen?

Meine aktuelle PHP-Funktion, die funktioniert, wenn sicher ist, dass ein Bild existiert.

function get_image_by_id($ID) { 

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

    if(empty($url)){ 

    return 'default.jpg'; 

    }else{ 

    return $url; 

    } 

} 

Meine index.php

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

Ihre leeren Prüfung benutzen kann scheint überflüssig – Akintunde007

Antwort

1

Hier CURL kann auch hilfreich sein, getestet und funktioniert gut. Hier verwenden wir curl, um HTTP-Response-Code für die URL zu erhalten. Wenn der Statuscode 200 lautet, bedeutet dies, dass er existiert.

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

Diese Funktion hat funktioniert. Vielen Dank! – KaoriYui

+0

@KaoriYui willkommen .. Freund froh, Ihnen zu helfen ... :) –

-1
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 
} 
+0

Diese Antwort einen Syntaxfehler hat, keine Erklärung, Umfang Probleme und ist schlecht formatiert. Es fügt der Seite keinen Wert hinzu. Bitte lösche diese Antwort. – mickmackusa

1

Sie php is_file() ermitteln können.

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

Sie einen ternären Operator verwenden können (Einzeiler)

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

Hi, es gibt false zurück, funktioniert 'is_file' auf URL? – KaoriYui

+0

Es funktioniert. Versuchen Sie, über den Browser auf die URL zuzugreifen und zu sehen, was sie zurückgibt. – Akintunde007

0

Sie dieses

<?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'; 
     } 
} 
?> 
Verwandte Themen