我网站中的网址将包含国际字符,例如ş
, ğ
, ı
...
在阅读了很多关于 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 验证/正则表达式中使用这个想法来获取 URL
bažmegakapa 提供使用
if (preg_match("#^https?://.+#", $link) and @fopen($link,"r")) echo "OK";
查看链接是否可以打开,则表示它已通过验证。
在此之后我的问题:
问题 -我喜欢这个想法,在我看来它非常棒。但是在看到它只有+7并且那个页面有+>>7个答案之后,我想问一下php大师的想法是什么?他们很乐意回答这个问题以帮助像我这样的人;新秀。
bažmegakapa 的代码有什么弱点吗?例如,我不知道,但是否有任何 url 无法打开它,但实际上它是一个无害的、必须验证的 url?那么,你发现的弱点有什么解决方法呢?
谢谢你
最好的祝福