我正在为我正在从事的项目寻找某种形式的输入安全性。基本上,如果用户输入了任何形式的 URL,我希望标记文本。
IE '欲了解更多我的照片,请访问 myhotpic.net'
因此它会检测到一个 url,然后我可以标记该字符串以通过人员进行验证。所以我需要检查任何形式的 URL。
这里有一个类似的问题 Find urls from text string via php and regex? 有一个答案。但是我已经用各种字符串厌倦了这个,我没有得到预期的结果。
例如
$pattern = '#(www\.|https?:\/\/){?}[a-zA-Z0-9]{2,254}\.[a-zA-Z0-9]{2,4}(\S*)#i';
$count = preg_match_all($pattern, 'http://www.Imaurl.com', $matches, PREG_PATTERN_ORDER);
返回匹配为
array(3) {
[0]=>
array(0) {
}
[1]=>
array(0) {
}
[2]=>
array(0) {
}
}
并且没有错误是通过preg_last_error()
为什么这不起作用?正则表达式是否有错误?我认为它很好,因为其他用户已经成功了。
我似乎无法在其他任何地方找到适合我的问题的答案。