【发布时间】:2013-04-11 08:21:52
【问题描述】:
我网站中的网址将包含国际字符,例如 ş、ğ、ı ...
在阅读了很多关于 url 验证问题的帖子和博客之后,我决定用另外一段代码来支持filter_var($url, FILTER_VALIDATE_URL)
- 如果 url 有 int.字符,网址无法验证
- http://www.d-mueller.de/blog/why-url-validation-with-filter_var-might-not-be-a-good-idea/ 由 bažmegakapa 用 +7 回答。
然后我决定在PHP validation/regex for URL使用这个想法
bažmegakapa 提供使用
if (preg_match("#^https?://.+#", $link) and @fopen($link,"r")) echo "OK";
查看链接是否可以打开则表示已验证。
在此之后我的问题:
问题 - 我喜欢这个想法,在我看来它非常棒。但是在看到它只有+7并且那个页面有+>>7个答案之后,我想问一下php大师的想法是什么,他们很乐意回答这个问题以帮助像我这样的人;新人。
bažmegakapa 的代码有什么弱点吗?例如,我不知道,但是否有任何网址 fopen 无法打开它,但实际上它是一个无害的、必须验证的网址?那么你检测到的弱点有什么解决方法呢?
谢谢
最好的问候
【问题讨论】:
标签: php filter fopen url-validation