Php 如何使用preg_替换在youtube上播放视频

Php 如何使用preg_替换在youtube上播放视频,php,iframe,preg-replace,preg-match,Php,Iframe,Preg Replace,Preg Match,我想在Youtube上显示一个视频,我使用preg_replace替换任何**链接**到,当在Firefox html代码的Inspect元素中看到代码是正确的但它不起作用时,我不知道为什么。下面是我的代码。谢谢你的帮助或建议 $string = "This is video on youtube **http://www.youtube.com/watch?v=wKTBUmrwYDs**"; $string = preg_replace("/\*\*([\w]+:\/\/[\w-?&;

我想在Youtube上显示一个视频,我使用preg_replace替换任何
**链接**
,当在Firefox html代码的Inspect元素中看到代码是正确的但它不起作用时,我不知道为什么。下面是我的代码。谢谢你的帮助或建议

$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=“这是youtube上的视频**http://www.youtube.com/watch?v=wKTBUmrwYDs**";
$string=preg\u replace(“/\*\*([\w]+:\/\/[\w-?&;\\~=\.\/\@]+[\w\/])\*\*/i”,“”,$string);
echo$字符串;
这也不管用

$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);
$string=preg\u replace(“/\*\*([\w]+:\/\/[\w-?&;\\.\/\@]+[\w\/])\*/i”,“,”,$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>';