Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP函数检索YouTube ID+;删除某些参数_Php_Youtube_Preg Replace - Fatal编程技术网

PHP函数检索YouTube ID+;删除某些参数

PHP函数检索YouTube ID+;删除某些参数,php,youtube,preg-replace,Php,Youtube,Preg Replace,我有一个函数,它解析YouTube URL以检索视频id,然后为大多数用例生成干净的嵌入代码。如果我向它传递一个时间继续存在的URL,则嵌入会中断,例如 if(isset($\u POST['submit'])){ $embedURL=mysqli\u real\u escape\u字符串($con,$\u POST['embedCode']); 函数($string){ 返回预更换( “'.'(?:https?:\/\/)(?:m\.www\)(?:youtu\.be\/.youtube \-

我有一个函数,它解析YouTube URL以检索视频id,然后为大多数用例生成干净的嵌入代码。如果我向它传递一个时间继续存在的URL,则嵌入会中断,例如

if(isset($\u POST['submit'])){
$embedURL=mysqli\u real\u escape\u字符串($con,$\u POST['embedCode']);
函数($string){
返回预更换(
“'.'(?:https?:\/\/)(?:m\.www\)(?:youtu\.be\/.youtube \-nocookie\.com\/嵌入\/嵌入\-youtube\.com\/(?:嵌入\/v\/.e\/.v=.共享\-ci=.观看\-观看\-观看\-观看\-观看\-观看\-观看\-观看\-观看\-观看\-观看\-Za-z0-9]{10},
"\https://www.youtube.com/embed/$2",
$string
);
}
$embedURL=convertYoutube($embedURL);
$code=“”;
}
代码生成以下内容(它不会删除我需要删除的time\u continue和feature=emb\u title参数)


我希望函数的格式像下面没有参数的嵌入代码一样。多谢各位

<div class='embed-responsive embed-responsive-16by9'><iframe class='embed-responsive-item' src='https://www.youtube.com/embed/2uBDNhe6Gkk' allowfullscreen></iframe></div>

这是一些其他问题的一部分,但由于你有它们的组合,我想我会把它们放在一起回答,而不是试图在评论中解释

第一部分是使用
parse\u URL()
将URL拆分为多个部分。然后使用字符串的查询部分,使用
parse_str()
解析该字符串,以拆分所有参数。然后将相关部分合并到新的URL中

$url_parts = parse_url($embedURL);
parse_str($url_parts['query'], $params);
$embedURL = $url_parts['scheme'] . '://' . $url_parts['host'] . 
        $url_parts['path']."/".$params['v'];
这给了

https://www.youtube.com/watch/2uBDNhe6Gkk
要用
嵌入
替换
监视
,只需替换
的“路径”
部分

$embedURL = $url_parts['scheme'] . '://' . $url_parts['host'] . 
        "/embed/" . $params['v'];

谢谢你帮我做这件事。它工作得很好。
https://www.youtube.com/watch/2uBDNhe6Gkk
$embedURL = $url_parts['scheme'] . '://' . $url_parts['host'] . 
        "/embed/" . $params['v'];