PHP validation/regex for URL
2022-08-30 07:01:41
我一直在为URL寻找一个简单的正则表达式,有人有一个方便的,效果很好吗?我没有找到一个带有zend框架验证类的,并且已经看到了几个实现。
我一直在为URL寻找一个简单的正则表达式,有人有一个方便的,效果很好吗?我没有找到一个带有zend框架验证类的,并且已经看到了几个实现。
使用该函数验证字符串是否为 URL:filter_var()
var_dump(filter_var('example.com', FILTER_VALIDATE_URL));
在没有必要时使用正则表达式是不好的做法。
编辑:小心,这个解决方案不是unicode安全,也不是XSS安全。如果您需要复杂的验证,也许最好在其他地方查找。
我在几个项目中使用了这个,我不相信我遇到过问题,但我确信它不是详尽无遗的:
$text = preg_replace(
'#((https?|ftp)://(\S*?\.\S*?))([\s)\[\]{},;"\':<]|\.\s|$)#i',
"'<a href=\"$1\" target=\"_blank\">$3</a>$4'",
$text
);
结尾处的大多数随机垃圾都是为了处理像句子中这样的情况(以避免匹配尾随句点)。我相信它可以被清理,但由于它有效。我或多或少只是把它从一个项目复制到另一个项目。http://domain.example.