我如何使用preg_replace在youtube上播放视频


How can i use preg_replace for show video on youtube

我想在Youtube上展示一个视频,我使用preg_replace替换任何**link**<iframe src="link"></iframe>时,看到检查元素在Firefox html代码中的代码是正确的,但它不起作用,我不知道为什么。我的代码在下面。谢谢你的帮助或建议。

$string = "This is video on youtube **http://www.youtube.com/watch?v=wKTBUmrwYDs**";
$string = preg_replace("/'*'*(['w]+:'/'/['w-?&;#~='.'/'@]+['w'/])'*'*/i",'<iframe width="420" height="315" src="$1" frameborder="0" allowfullscreen></iframe>',$string);
echo $string;

这个也不行

$string = preg_replace("/'*'*(['w]+:'/'/['w-?&;#~='.'/'@]+['w'/])'*'*/i","<object width='"420'" height='"315'"><param name='"movie'" value='"$1?hl=en_US&amp;version=3&amp;rel=0'"></param><param name='"allowFullScreen'" value='"true'"></param><param name='"allowscriptaccess'" value='"always'"></param><embed src='"$1?hl=en_US&amp;version=3&amp;rel=0'" type='"application/x-shockwave-flash'" width='"420'" height='"315'" allowscriptaccess='"always'" allowfullscreen='"true'"></embed></object>",$string);

应该可以:

<?php
$string = "This is video on youtube **http://www.youtube.com/watch?v=wKTBUmrwYDs**";
preg_match( '#http(s?)://(((www'.)?youtube'.com)|(youtu'.be))/((watch.*('?|'&)v=([^&]+))|((embed/)?([a-z0-9'-_]+))|)#i' , $string , $matches );
$youtube_id = array_pop( $matches );
$iframe_tag = '<iframe width="420" height="315" src="'.$youtube_id.'" frameborder="0" allowfullscreen></iframe>';