2012-07-17 36 views

回答

3

您可以简单地使用HEAD请求来获取页面的标题而不是整个页面。尽管如此,该网站仍然会生成整个页面,但至少您不会下载所有内容。

为了达到这个目的,你可以使用很多方法,只要检查如何改变请求的头部,而不是做一个GET,就可以做一个HEAD。

+0

,但它将花费相同的时间来打开网站,它是更可靠,然后打开或卷曲? – Sourabh 2012-07-17 19:26:30

+0

只要你触发HTTP协议,它将会执行整个页面,如果服务器/网站不是只返回头部的话。你想要的是某种看门狗,但通常情况下,人们将实现一个小网页,只监听一个请求并返回一些信息来表明他们还活着。 – 2012-07-17 19:27:51

+0

如果你不能依赖这样的机制,并且必须获得主页,那么没有什么可以做更多的事情,获得​​主页,等待所有的数据被处理,但是使用HEAD你只能传输一部分回应并没有得到一切。 – 2012-07-17 19:28:29

0

你可以发送一个头部请求并检查http响应代码?

+0

请问您能否详细说明您的答案? – Sourabh 2012-07-17 19:12:00

+0

我不知道还有什么要说明的。从我的答案开始,使用谷歌进行跟踪研究会很容易。 – 2012-07-17 19:12:26

+1

@JonTaylor:什么是标题请求?你如何发送一个?你如何检查HTTP响应码?只是因为它对你来说很明显,并不意味着它适用于所有其他人:) – 2012-07-17 19:14:50

1

fopen()fread()不读取整个网页(不一定是反正)。您可以使用它并只读取几个字节来确定网站是否存在(200 OK)。

0
$file = 'http://www.test.com/idontexist.jpg'; 
$file_headers = @get_headers($file); 
if($file_headers[0] == 'HTTP/1.1 404 Not Found') { 
    $exists = false; 
} 
else { 
    $exists = true; 
} 
+0

为什么抑制错误? – 2012-07-17 19:13:48

相关问题