如何交换包含链接和 youtube 网址的文本以嵌入 youtube 视频:
$text = " normal text here
youtube : http://www.youtube.com/watch?v=xxxxxx
link : http://stackoverflow.com
and some normal text here too.
";
结果:
youtube : <iframe width="529" height="315" src="//www.youtube.com/embed/YOUTUBE_URL_HERE" frameborder="0" allowfullscreen></iframe>
link : <a href="http://stackoverflow.com">http://stackoverflow.com</a>
some normal text here too.
function clickableLinksANDyoutubeIframe($text) {
//swapping to embed youtube video
$text = preg_replace("/'s*[a-zA-Z'/'/:'.]*youtube.com'/watch'?v=([a-zA-Z0-9'-_]+)([a-zA-Z0-9'/'*'-'_'?'&';'%'='.]*)/i","<iframe width='"529'" height='"315'" src='"//www.youtube.com/embed/$1'" frameborder='"0'" allowfullscreen></iframe>",$text);
//swapping to url href
$text = preg_replace('/(?<!'S)#([0-9a-zA-Zذضصثقفغعهخحجدشسيبلاتنمكطئءؤرلاىةوزظأإآ_]+)/', '<a href="/hashtag/$1" class="hashtaglink">#$1</a>', $text);
$text = preg_replace('/(?<!'S)@([0-9a-zA-Zذضصثقفغعهخحجدشسيبلاتنمكطئءؤرلاىةوزظأإآ_-]+)/', '<a href="/$1" class="hashtaglink">@$1</a>', $text);
$text = nl2br($text);
//the result
return $text;
}