Ich bin derzeit die folgende Methode zu überprüfen, ob eine URLüberprüfen, ob URL existiert php
$url = 'https://www.facebook.com/a-test-example-232397848665383511';
$headers = @get_headers($url);
if(strpos($headers[0],'200')===false){
print('NOT found!');
} else {
print('found!');
}
Dies besteht druckt NOT found!
obwohl die Seite deutlich, wenn besucht löst. Ich drucke die Header und fand es, weil es eine 302
zurückgibt. Gibt es eine Möglichkeit, eine strpos
zu tun, um für alle möglichen Header-Werte zu testen, die auflösen?
Stromausgang von Headern:
Array
(
[0] => HTTP/1.1 302 Found
[1] => Location: https://www.facebook.com/unsupportedbrowser
[2] => Vary: Accept-Encoding
[3] => Content-Type: text/html
// more array items
Wenn ich in einer URL eingeben, die ich weiß, fehlschlägt ich folgendes erhalten:
Array
(
[0] => HTTP/1.1 404 Not Found
[1] => P3P: CP="Facebook does not have a P3P policy."
[2] => Strict-Transport-Security: max-age=15552000; preload
// rest of array
Ist es sicher zu testen, einfach für einen 404?
Ja, Sie können zwei 'strpos'-Prüfungen mit einer '||' oder-Bedingung verwenden, um die' if'-Prüfung stumpfer zu machen. Oder verwende eine Regex. – mario
verwenden Sie Curl? – AlwaysConfused