PHP erkennt, ob eine Remote-Datei vorhanden ist

巴扎黑
Freigeben: 2016-11-24 15:15:54
Original
985 Leute haben es durchsucht

$url = 'http://example.com';

$hander_array = get_headers ( $url );

if ($ header_array [0] == 'HTTP/1.1 200 OK') {

echo 'Datei existiert';

} else {

echo 'Datei existiert nicht';

}

Erläutern Sie kurz den obigen Code. Die Funktion von get_headers besteht darin, auf eine Remote-Adresse zuzugreifen und die vom Server gesendeten HTTP-Header in Form eines Arrays zurückzugeben. Und $header[0] ist der vom Server zurückgegebene Statuscode (wenn nichts anderes passiert, sollte der Statuscode der erste sein, der zurückgegeben wird).

Um zu bestätigen, dass eine Datei auf dem Remote-Server vorhanden ist, stellen Sie einfach sicher, dass der durch den Zugriff auf die Datei zurückgegebene Statuscode „HTTP/1.1 200 OK“ lautet (Sie können natürlich auch feststellen, ob der Statuscode nicht vorhanden ist). „HTTP/ 1.1 404 Not Found“ bedeutet, dass die Datei existiert, sich aber immer unsicher anfühlt. Schließlich gibt es auch andere Statuscodes wie 301, 400.

Beispiel für den Erhalt eines dreistelligen HTTP-Antwortcodes:

<?php  
function get_http_response_code($theURL) {  
    $headers = get_headers($theURL);  
    return substr($headers[0], 9, 3);  
}  
?>
Nach dem Login kopieren

Beispiel für den Ausschluss einer Umleitung:

<?php  
/** 
 * Fetches all the real headers sent by the server in response to a HTTP request without redirects 
 * 获取不包含重定向的报头 
 */  
   
function get_real_headers($url,$format=0,$follow_redirect=0) {  
  if (!$follow_redirect) {  
    //set new default options  
    $opts = array(&#39;http&#39; =>  
        array(&#39;max_redirects&#39;=>1,&#39;ignore_errors&#39;=>1)  
    );  
    stream_context_get_default($opts);  
  }  
  //get headers  
    $headers=get_headers($url,$format);  
    //restore default options  
  if (isset($opts)) {  
    $opts = array(&#39;http&#39; =>  
        array(&#39;max_redirects&#39;=>20,&#39;ignore_errors&#39;=>0)  
    );  
    stream_context_get_default($opts);  
  }  
  //return  
    return $headers;  
}  
?>
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage