Це можна зробити, отримавши код стану HTTP (404 = не знайдено), що можливо в file_get_contentsДокументах із використанням параметрів контексту. Наступний код враховує переспрямування та повертає код стану кінцевого пункту призначення ( Демо ):
$url = 'http://example.com/';
$code = FALSE;
$options['http'] = array(
'method' => "HEAD",
'ignore_errors' => 1
);
$body = file_get_contents($url, NULL, stream_context_create($options));
foreach($http_response_header as $header)
sscanf($header, 'HTTP/%*d.%*d %d', $code);
echo "Status code: $code";
Якщо ви не хочете стежити за переспрямуваннями, ви можете зробити це подібним чином ( Демо ):
$url = 'http://example.com/';
$code = FALSE;
$options['http'] = array(
'method' => "HEAD",
'ignore_errors' => 1,
'max_redirects' => 0
);
$body = file_get_contents($url, NULL, stream_context_create($options));
sscanf($http_response_header[0], 'HTTP/%*d.%*d %d', $code);
echo "Status code: $code";
Деякі функції, параметри та змінні, що використовуються, пояснюються більш докладно в дописі в блозі, який я написав: HEAD first with PHP Streams .