Điều này có thể được thực hiện bằng cách lấy mã Trạng thái HTTP (404 = not found), mã này có thể thực hiện được với file_get_contentsTài liệu sử dụng các tùy chọn ngữ cảnh. Đoạn mã sau sẽ tính đến các chuyển hướng và sẽ trả về mã trạng thái của điểm đến cuối cùng ( Demo ):
$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";
Nếu bạn không muốn theo dõi các chuyển hướng, bạn có thể thực hiện tương tự ( Demo ):
$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";
Một số hàm, tùy chọn và biến đang sử dụng được giải thích chi tiết hơn trong một bài đăng trên blog mà tôi đã viết: HEAD trước với PHP Streams .