确保URL指向真实位置?

时间:2011-04-21 19:49:30

标签: php url exists

我已经开始使用这个小CMS了,用户可以在提交之前预览帖子。我想要一个功能来检查输入的URL是否有效(I.E.指向存在的资源,而不是它是否是正确的格式)。最好,我想用JavaScript(我不必使用AJAX和PHP),但PHP很好。

有人能指出我这样做的方法吗?为了以防万一,我想要运行UNIX ping命令之类的是/否响应。我不关心URL的另一端是什么,只是它是否真正指向可导航的东西。

谢谢,

詹姆斯

2 个答案:

答案 0 :(得分:2)

你可以简单地使用fopen查看网址是否有效......当然,这可能是资源过度杀戮,具体取决于你做这件事的频率。

http://php.net/manual/en/function.fopen.php

或者,您可以使用jquery插件:

http://binarykitten.me.uk/dev/jq-plugins/88-jquery-plugin-ajax-head-request.html

一种替代的,可能是最简单的方法,但是你可以使用jquery来调用另一个实现它的PHP脚本:

http://php.net/manual/en/function.get-headers.php

答案 1 :(得分:1)

将其加载到新的img对象中,看看响应是什么。由于您实际上并未显示图像,因此您可能正在加载纯文本或其他非图像数据这一事实大多无关紧要,您只想查看图像请求的HTTP状态代码是什么。

好处是,如果恶意用户试图加载指向一个非常大的文件的URL,他们只会自己做,因为请求将从他们的浏览器而不是您的服务器发出。在不利方面,没有任何东西可以阻止他们欺骗正确的响应,并且仍然会投入大量资源并提交表单。