我在其他网站上找到的每个视频都尽量不去 youtube,那是来自 youtube。如果我右键单击并复制视频 URL,则 url 将在链接中包含此功能内容,我正在尝试使用 str_replace 摆脱它。
关联http://www.youtube.com/watch?feature=player_embedded&v=wq7ftOZBy0E
$_GET['link'] = str_replace('feature=player_embedded&', '', $_GET['link']);
或者
$_GET['link'] = str_replace('http://www.youtube.com/watch?feature=player_embedded&', 'http://www.youtube.com/watch?', $_GET['link']);
要么只返回http://www.youtube.com/watch?feature=player_embedded
,而不是我所期望的:http://www.youtube.com/watch?v=wq7ftOZBy0E
更新:
我意识到这不是我首先想到的 str_replace 的问题,看起来如果 url 是
http://localhost/mysite/link.php/?link=http://www.youtube.com/watch?feature=player_embedded&v=wq7ftOZBy0E
$_GET['link'] 使用 url 直到 "&"。它缺少这一切&v=wq7ftOZBy0E
。
似乎 & 符号破坏了 $_GET['link'],我该怎么做才能完成这项工作?
解决方案,基于接受的答案:
if(isset($_GET['v']))
{
$_GET['link'] = $_GET['link'].'&v='.$_GET['v'];
$_GET['link'] = str_replace('feature=player_embedded&', '', $_GET['link']);
$_GET['link'] = str_replace('http://www.youtube.com/watch?v=', '//www.youtube.com/embed/', $_GET['link']);
$_GET['link'] = str_replace('www.youtube.com/watch?v=', '//www.youtube.com/embed/', $_GET['link']);
$_GET['link'] = str_replace('http://youtu.be/', '//www.youtube.com/embed/', $_GET['link']);
echo $_GET['link'];
}
else
{
$_GET['link'] = str_replace('http://www.youtube.com/watch?v=', '//www.youtube.com/embed/', $_GET['link']);
$_GET['link'] = str_replace('www.youtube.com/watch?v=', '//www.youtube.com/embed/', $_GET['link']);
$_GET['link'] = str_replace('http://youtu.be/', '//www.youtube.com/embed/', $_GET['link']);
echo $_GET['link'];
}