Php Youtube链接和获取方法

Php Youtube链接和获取方法,php,string,replace,youtube,str-replace,Php,String,Replace,Youtube,Str Replace,试着不去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']); 或

试着不去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']);

其中一个将仅返回
http://www.youtube.com/watch?feature=player_embedded
,而不是我所期望的:
http://www.youtube.com/watch?v=wq7ftOZBy0E

$_GET['link'] = str_replace('feature=player_embedded&', '', $_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'];
}
我意识到这在str_replace中不是问题,正如我第一次想到的,看起来如果url是

http://localhost/mysite/link.php/?link=http://www.youtube.com/watch?feature=player_embedded&v=wq7ftOZBy0E
$\u 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'];
}
我运行这个代码

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

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

?>

我得到了以下结果

我不知道你在找什么

  $id =  substr($_GET['link'],-11);

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

您可以获得在&as$\u get['v']之后的数据


它只获取分配给变量“v”的数据

只需添加以下代码

if(isset($_GET['v']))
{
$resultURL=$_GET['link'].'&v='.$_GET['v'];
}

你让我思考,我独自尝试了你的代码。我看到它起作用了。我更新了问题。你可以获得数据,因为$u get['v']不能使用它。我的功能不仅仅是youtube。我必须使用$_GET['link'],因为我使用来自不同网站的视频。我需要做一个符号,而不是停止$_-GET。那么你最终想要的是什么…我的意思是你想要的最终输出是什么我有一个带有iframe的“link.php”文件,里面是$_-GET['link']的函数,适用于一切,只是这个符号阻止了$\u GET to take everything for youtube only。这种方法将始终使用-11,我的功能不仅适用于youtube,它是所有视频和任何网站的iframe,而且在这里发布的内容太多。可能没人会读它。即使我全部粘贴,也无法理解。问题似乎出现在$\u GET中,而不是字符串replace中。是。就这样。我用它编写了所有代码:现在就去测试它。希望它能起作用。