Można sprawdzić niedziałający link korzystania z tej funkcji:
function check_url($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$headers = curl_getinfo($ch);
curl_close($ch);
return $headers['http_code'];
}
Trzeba mieć CURL
zainstalowane dla tej pracy. Teraz można sprawdzić linki z wykorzystaniem:
$check_url_status = check_url($url);
if ($check_url_status == '200')
echo "Link Works";
else
echo "Broken Link";
również sprawdzić ten link do kodów stanu HTTP: HTTP Status Codes
myślę, że można także sprawdzić 301
i 302
kodów stanu.
Inną metodą byłoby użycie funkcji get_headers
. Ale to działa tylko wtedy, gdy wersja PHP jest większy niż 5:
function check_url($url) {
$headers = @get_headers($url);
$headers = (is_array($headers)) ? implode("\n ", $headers) : $headers;
return (bool)preg_match('#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers);
}
W tym przypadku po prostu sprawdzić dane wyjściowe:
if (check_url($url))
echo "Link Works";
else
echo "Broken Link";
nadzieję, że to pomaga :).
Powiązany temat wydaje się dość trafny. – Kermit
sprawdź nagłówki odpowiedzi, używając curl i opublikuj kod z określonym problemem. – Ejaz
Czy jest to link do niektórych treści w Twojej witrynie lub treści na innej stronie? – Touch