Früher wusste ich, dass file_exists nicht überprüfen kann, ob Remote-Dateien vorhanden sind, aber ich weiß nicht, wie ich überprüfen kann, ob Remote-Dateien vorhanden sind
Heute habe ich den Blog des PHP Information Research Center gelesen und eine Funktion gefunden get_headers
Originaltext hier:
So prüfen Sie, ob eine Remote-Datei existiert
http://www.xqs.cn/index.php?load=read&id=95
get_headers(PHP5) – Serverantwort abrufen Alle von einer HTTP-Anfrage gesendeten Header
get_headers() Gibt ein Array zurück, das die vom Server als Antwort auf eine HTTP-Anfrage gesendeten Header enthält. Wenn dies fehlschlägt, wird FALSE zurückgegeben und eine Fehlermeldung der Stufe E_WARNING ausgegeben.
Wenn der optionale Formatparameter auf 1 gesetzt ist, analysiert get_headers() die entsprechenden Informationen und legt den Schlüsselnamen des Arrays fest.
Gibt etwas zurück wie
Array (
[0] => HTTP/1.1 200 OK
[Datum] => Sa, 29. Mai 2004 12:28:14 GMT
[Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux)
[Zuletzt geändert] => Mi, 08. Januar 2003 23:11:55 GMT
[ETag] = > „3f80f-1b6-3e1cb03b“
[Accept-Ranges] => Bytes
[Content-Length] => 438
[Connection] => close
[Content-Type] => Text / html
)
Ich halte es nicht für angemessen, dass der ursprüngliche Autor beurteilt, ob ein Array zurückgegeben werden soll
da der Status der http-Datei möglicherweise nicht 200, sondern etwas anderes ist
Weil ich es getestet habe. Schauen wir uns etwas an, das auf meiner Website eigentlich nicht existiert. Der zurückgegebene Seitenstatus sollte 404 sein und existiert nicht, aber die Funktion des ursprünglichen Autors gibt immer noch true zurück
Tatsächlich , es sollte anhand des Status der zurückgegebenen Seite beurteilt werden