码修
4 天前
在代码中, 很常会校验这校验那, 判断数据类型或是否满足特定规则, 比如校验 URL. 在 PHP 中:
1 使用正则表达式:
- $text = preg_replace(
- '#((https?|ftp)://(\S*?\.\S*?))([\s)\[\]{},;"\':<]|\.\s|$)#i',
- "'<a href=\"$1\"target=\"_blank\">$3</a>$4'",
- $text
- );
有个做了关于所有 URL 正则表达式的测试: https://mathiasbynens.be/demo/url-regex
2 使用 PHP 内置函数:
var_dump(filter_var('example.com', FILTER_VALIDATE_URL));
注意, 这个方法有 xxs 的风险, 同时在 PHP5.2 大版本中有个 bug, 就是带'-'号的链接匹配不出来, 如:"www.a-b-c.com" 匹配不到.
来源: http://www.mzh.ren/php-validate-url.html