Heim  >  Artikel  >  Backend-Entwicklung  >  PHP erkennt, ob eine Remote-Datei vorhanden ist

PHP erkennt, ob eine Remote-Datei vorhanden ist

巴扎黑
巴扎黑Original
2016-11-29 11:43:401020Durchsuche

<?php
$url = &#39;http://example.com&#39;;
$hander_array = get_headers ( $url );
if ($header_array [0] == &#39;HTTP/1.1 200 OK&#39;) {
echo &#39;文件存在&#39;;
} else {
echo &#39;文件不存在&#39;;
}

Erklären 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 (natürlich können Sie 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);  
}  
?>

Ausschluss der Weiterleitung:

<?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;  
}  
?>


Stellungnahme:
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