Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使php成为youtube视频?_Php_Iframe_Video_Youtube_Str Replace - Fatal编程技术网

如何使php成为youtube视频?

如何使php成为youtube视频?,php,iframe,video,youtube,str-replace,Php,Iframe,Video,Youtube,Str Replace,我有一些文本,每次从youtube上传时都会包含一个视频链接,但形式如下: Lorem ipsum文本e3txt sdfsdds f dsf sdf dsfsdfds fds fds fds f dsf sdf sd fds fd Lorem ipsum sgsdfds fds fds fdsfsdfsdfds {youtube}uqfYNxP7GzM{/youtube} …所以我想做的是,我想用php使{youtube}uqfYNxP7GzM{/youtube}成为一个可播放的视频,使用if

我有一些文本,每次从youtube上传时都会包含一个视频链接,但形式如下:

Lorem ipsum文本e3txt sdfsdds f dsf sdf dsfsdfds fds fds fds f dsf sdf sd fds fd Lorem ipsum sgsdfds fds fds fdsfsdfsdfds

{youtube}uqfYNxP7GzM{/youtube}
…所以我想做的是,我想用php使{youtube}uqfYNxP7GzM{/youtube}成为一个可播放的视频,使用iframe代码如下:

<iframe width="640" height="360" src="//www.youtube.com/embed/uqfYNxP7GzM" frameborder="0" allowfullscreen></iframe>

问题是uqfYNxP7GzM并不总是一样的!!!因为视频本身就是另一回事。。嗯,那我怎么能每次都把这个模式{youtube}转换成不同的代码{/youtube}的iframe可播放视频呢

可能使用preg replace、str replace或类似功能?但是,既然{youtube}value{/youtube}中的值每次都是其他值,我该怎么做呢


谢谢你等待你宝贵的帮助

您可以将PHP的preg\u match方法与正则表达式“
/\{youtube\}(.*)\{\/youtube\}/s
”一起使用。并返回$array的第二个元素作为结果

    $input= "{youtube}uqfYNxP7GzM{/youtube}";

    preg_match("/\{youtube\}(.*)\{\/youtube\}/s",$string, $r);

    $result= $r[1];

    echo $result;

我不太擅长正则表达式。但这可能奏效:

$opa2 = " Lorem ipsum text e3txt sdfsdds f dsf sdf dsfsdfds fds fds fds f dsf sdf sd fds fd Lorem ipsum sgsdfds fds fds fdsfsdfsdfds domr text jwweorw {youtube}uqfYNxP7GzM{/youtube}"; 
$pattern = "/{youtube}(.*?){\/youtube}/";
preg_match_all($pattern, $opa2, $matches);
if(isset($matches[0]) && !empty($matches[0])) { // if indeed there are
    $id = reset($matches[1]);
    $opa3 = preg_replace($pattern, "<iframe width='640' height='360' src='http://www.youtube.com/embed/$id'></iframe>", $opa2);
}
echo $opa3;
$opa2=“Lorem ipsum text e3txt sdfsdds f dsf sdf dsf dsfsdfds fds fds fds f dsf sdf sd fds fds fd Lorem ipsum sgsdfds fds fds fds fds fds sdfsdfds domr text jwweorw{youtube}uqfYNxP7GzM{/youtube}”;
$pattern=“/{youtube}(.*?{\/youtube}/”;
preg_match_all($pattern,$opa2,$matches);
if(isset($matches[0])&&&!empty($matches[0]){//如果确实存在
$id=重置($matches[1]);
$opa3=预替换($pattern,“,$opa2);
}
echo$opa3;

Hm。。我还有一个关于我们以前解决的例子的案例

在{youtube}uqfYNxP7GzM{/youtube}中有一些额外的元素,如下所示:

{youtube}uqfYNxP7GzM | 600 | 450 | 0{/youtube}

我们能做什么

如您所见,问题在于包含的额外数据“| 600 | 450 | 0”这种数据有时会出现,也可能不同。可能是| 600 | 450 | 0,其他时间是| 800 | 600 | 0等

所以。。。在这种情况下,我们可以做些什么来像以前一样解决它

我试过:

$pattern1 = "/{youtube}(.*?)600|450|0{\/youtube}/";

但是不起作用。

我想把这个{youtube}uqfYNxP7GzM{/youtube}..放到这个iframe width=“640”height=“360”src=“///www.youtube.com/embed/uqfYNxP7GzM”frameborder=“0”allowfullscreen>军团中。你觉得有趣吗?你能帮个忙吗?我想我们也需要正则表达式,对吗?但我对正则表达式了解不多。$starttext是这种形式,包括文本和{youtube}值{/youtube}-->$starttext=“Lorem ipsum text e3txt sdfsdds f dsf sdf dsfsdfds fds fds fds f dsf sdf sd fds fds Lorem ipsum sgsdfds fds fds fds fdsfsdfsdfds domr text jwweorw{youtube}uqfYNxP7GzM{/youtube}”;我们不必将第一个{youtube}值{/youtube}与$startText?的其余文本分开。。嗯,重点是替换{youtube}uqfYNxP7GzM{/youtube}。谢谢Lissy,但MarioD'Boro更好地理解了我想要的答案,这是我真正想要做的。无论如何,看看上面,你的代码它也帮助了我,是在正确的逻辑上,但不适合我的情况。这篇文章被自动标记为低质量,因为它是如此短/唯一的代码。你介意通过添加一些文本来扩展它,解释它是如何解决问题的吗?那很好!但是我有个问题。。{youtube}{/youtube}内容仍保留在输出中。。如下所示:(请参阅下面修改的代码:$pattern=“/{youtube}(.*.{\/youtube}/”$preg_match_all($pattern,$opa2,$matches);if(isset($matches[0])&&&&!empty($matches[0]){//如果确实有$id=reset($matches[1]);$opa3=str replace($id),“@Markets_是现代的(
{youtube}{/youtube}
需要删除字符串中的代码?这里的代码更好:这里的{youtube}视频显示完美{/youtube}在我回显$opa3;时在输出中显示。我想要{youtube}{/youtube}在输出中不可见。如何做到这一点?preg_replace和$pattern是解决方案!感谢您的帮助对我来说非常重要。非常感谢!嗯……我还有一个例子,是关于我们以前解决的例子。在{youtube}uFcTAk_A9Nc{/youtube}中有一些元素,它是这样的:{youtube}uFcTAk|u A9NcuFcTAk|u A9Nc | 600 | 450 | 0{/youtube}我们能做什么?正如你所看到的,问题是额外的数据包括“| 600 | 450 | 0”这类数据有时会出现,也可能不同。它们可能是| 600 | 450 | 0,其他时间是| 800 | 600 | 0等等。因此……在这种情况下,我们能做些什么才能像以前那样解决它呢?