在我的网站中,我有三个正则表达式(一个被禁用,你会明白为什么......)来替换用户发布的内容:
1° 将电子邮件替换为链接的电子邮件:
$string = preg_replace("/([\w-?&;#~=\.\/]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?))/i","<a href=\"mailto:$1\">$1</a>",$string);
2° 用嵌入视频替换 Youtube 链接:
$pattern = '/http:\/\/www\.youtube\.com\/watch\?(.*?)v=([a-zA-Z0-9_\-]+)(\S*)/i';
$replace = '<iframe title="YouTube" class="youtube" type="text/html" width="320" height="240" src="http://www.youtube.com/embed/$2" frameborder="0" allowFullScreen></iframe>';
$string = preg_replace($pattern, $replace, $string);
3° 用链接的链接替换链接(这些链接被禁用!):
/*** make sure there is an http:// on all URLs ***/
$string = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2",$string);
/*** make all URLs links ***/
$string = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<a target=\"_blank\" href=\"$1\">$1</a>",$string);
我的问题是,显然,第三个替换 youtube 链接在它们被以前的正则表达式替换后(切换序列,中断 youtube 视频)
如何启用第三个正则表达式来替换忽略 youtube 模式的 URL?谢谢 ;-)