我需要将任何有效链接与图像和 youtube 视频的链接分开匹配。我想在常规链接周围放置锚标签,但在图像和 youtube 视频周围分别放置 img 和 iframe 标签。
这是我的代码
$str = "some stuff with links"
$output = preg_replace('#(http://([^\s]*)\.(jpg|gif|png))#',
'<img src="$1" alt="" width="" height="" />', $str);
$output = preg_replace('#(http://([^\s]*)youtube\.com/watch\?v=([^\s]*))#',
'<iframe width="420" height="315" src="http://www.youtube.com/embed/$3" frameborder="0" allowfullscreen></iframe>', $output);
var_dump($output);
这忽略了常规链接,如何修改它以检测链接而不是其他两个?有没有更简单的方法?
谢谢