检查URL是否存在 - 不使用php get_headers

时间:2015-06-29 14:17:25

标签: php

我需要确定是否退出了网址。我跑过这篇文章。

here

$file = 'http://godaddy';
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') 
{
    $exists = false;
}
else 
{
    $exists = true;
}

并且实现了这个代码,当我作为忘记放入.com的用户进行测试时,它返回true。这是不正确的,因为如果你去How can I check if a URL exists via PHP?没有网站。

我尝试先验证$文件,但是

filter_var($url, FILTER_VALIDATE_URL);

http://godaddy视为有效网址。

知道如何处理这种输入吗?

var_dump($file_headers)= array(8) {
    [0]=> string(15) "HTTP/1.1 200 OK"
    [1]=> string(13) "Server: nginx"
    [2]=> string(35) "Date: Mon, 29 Jun 2015 14:23:07 GMT"
    [3]=> string(23) "Content-Type: text/html"
    [4]=> string(17) "Connection: close"
    [5]=> string(21) "Vary: Accept-Encoding"
    [6]=> string(38) "Expires: Mon, 29 Jun 2015 14:23:06 GMT"
    [7]=> string(23) "Cache-Control: no-cache"
}

1 个答案:

答案 0 :(得分:0)

尝试不使用@字符。通过这种方式,您可以看到直接错误。我认为错误屏蔽不能正确读取get_header

的响应