我想知道如何将字符串模式更改为其他内容。我正在建立一个小论坛,并希望每当有人进入论坛的textarea部分链接时嵌入youtube视频。 Youtube视频链接看起来像这样;
https://www.youtube.com/watch?v=examplevideo
但是,我想将此字符串更改为这样;
<iframe width="420" height="315"
src="https://www.youtube.com/embed/examplevideo">
</iframe>
所以,除了“examplevideo”字符串之外,我会更换掉所有内容。由于此链接将包含在表单的textarea部分的其他文本中,我的猜测是我必须设置一个if语句来查找“https://www.youtube.com/watch?v=”的任何内容。我是否会使用字符串比较这个?这将如何运作?
答案 0 :(得分: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://php.net/manual/en/function.strpos.php
str_replace
手册:http://php.net/manual/en/function.str-replace.php
答案 1 :(得分:2)
简单的正则表达式解决方案,可以在?v=
$video_name = preg_replace('/^.*\?v=/', '', 'https://www.youtube.com/watch?v=examplevideo');
答案 2 :(得分: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),接受以下内容并将其附加到'{{3 }}”。