我网站的一部分要求用户输入网址,但如果他们输入的网址不正确,或者只是故意输入不存在的网址,我的数据库会记录错误。
这可以通过检查URL来查看是否有任何问题来解决,我只能想到一个在PHP文件中加载外部URL然后解析它的内容。但我希望有一种方法不会给我的服务器带来不必要的压力。
还有哪些其他方法可以检查特定网址是否有任何内容?
答案 0 :(得分:4)
我只会提出HEAD
请求。这适用于大多数服务器,并且避免下载整个页面,因此非常有效。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
您所要做的就是解析返回的状态代码。如果它是200,那么你很好。
使用cURL的示例实现:http://icfun.blogspot.com/2008/07/php-get-server-response-header-by.html
答案 1 :(得分:1)
您可以使用php get_headers($url),如果没有答案,将返回false
答案 2 :(得分:1)
如果您愿意包含一个微小的Flash嵌入,您可以从客户端进行跨域AJAX调用,以查看是否有任何有用的信息在目的地。这将减轻任何服务器的参与。
http://jimbojw.com/wiki/index.php?title=Introduction_to_Cross-Domain_Ajax
答案 3 :(得分:1)
我会使用cURL来执行此操作,这样就可以指定超时。