0

我想知道如何将字符串模式更改为其他内容。我正在建立一个小型论坛,并希望在有人将链接输入论坛的 textarea 部分时嵌入 youtube 视频。Youtube 视频链接如下所示;

https://www.youtube.com/watch?v=examplevideo

但是,我想把这个字符串改成这样;

<iframe width="420" height="315"
src="https://www.youtube.com/embed/examplevideo">
</iframe>

所以,我会换掉除“examplevideo”字符串之外的所有内容。由于此链接将包含在表单文本区域部分的其他文本中,我的猜测是我必须设置一个 if 语句来查找任何显示“ https://www.youtube.com/watch?v = " 我会为此使用字符串比较吗?这将如何工作?

4

3 回答 3

3

假设您要回显结果:

if(strpos($url,"youtube.com/watch?v=")){
    echo '<iframe width="420" height="315" src="';
    echo str_replace('/watch?v=','/embed/',$url);
    echo '"></iframe>';
}else{
    echo $url;
}

strpos手册:http
str_replace ://php.net/manual/en/function.strpos.php手册:http: //php.net/manual/en/function.str-replace.php

于 2013-09-22T17:50:43.880 回答
2

简单的正则表达式解决方案,以获取之后的所有内容?v=

$video_name = preg_replace('/^.*\?v=/', '', 'https://www.youtube.com/watch?v=examplevideo');
于 2013-09-22T17:52:55.603 回答
1

我建议使用正则表达式:

// $url is 'https://www.youtube.com/embed/examplevideo'
$url = preg_replace('/https?\:\/\/www.youtube.com/watch\?v=(.*)/i', 'https://www.youtube.com/embed/$1', $url);

它的作用是,它查找以“ http://www.youtube.com/watch?v= ”开头的字符串(我添加了“?”,以便它与 http 和 https 匹配),获取后面的任何内容并附加这到“ https://www.youtube.com/embed/ ”。

于 2013-09-22T17:56:54.800 回答