0

我在其他网站上找到的每个视频都尽量不去 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'];
}
4

4 回答 4

1

只需添加以下代码

if(isset($_GET['v']))
{
$resultURL=$_GET['link'].'&v='.$_GET['v'];
}
于 2013-11-05T11:12:49.923 回答
0

您可以将 & 之后的数据作为 $_GET['v'] 获取。

它只是获取分配给变量'v'的数据

于 2013-11-05T10:54:02.183 回答
0

我运行这段代码

<?php
$_GET['link']="http://www.youtube.com/watch?feature=player_embedded&v=wq7ftOZBy0E";

echo $_GET['link'] = str_replace('feature=player_embedded&', '', $_GET['link']);

?>

我得到了以下输出

http://www.youtube.com/watch?v=wq7ftOZBy0E

我不知道你在找什么

于 2013-11-05T10:18:59.090 回答
0
  $id =  substr($_GET['link'],-11);

这将为您提供 youtube 视频 ID('v=-------' 之后的唯一字符串,Youtube id 是 11 位随机字符串)。

于 2013-11-05T10:27:38.597 回答