代码:
$pattern = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$urls = array();
preg_match($pattern, $comment, $urls);
return $urls;
根据在线正则表达式测试人员的说法,这个正则表达式是正确的并且应该可以工作:
我使用以下方法输出 $links 数组:
$linkItems = $model->getLinksInComment($model->comments);
//die(print_r($linkItems));
echo '<ul>';
foreach($linkItems as $link) {
echo '<li><a href="'.$link.'">'.$link.'</a></li>';
}
echo '</ul>';
输出如下所示:
- http://google.com
- http
$model->comments 如下所示:
destined for surplus
RT#83015
RT#83617
http://google.com
https://google.com
non-link
生成的列表只是假设是链接,并且不应该有空行。我所做的是否有问题,因为正则表达式似乎是正确的。