Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 更改url字符串_Php_Url_String - Fatal编程技术网

Php 更改url字符串

Php 更改url字符串,php,url,string,Php,Url,String,我想要这个urlhttp://www.youtube.com/watch?v=dgNgODPIO0w&feature=rec-HM fresh+div要转换为:http://www.youtube.com/v/dgNgODPIO0w使用php。我将使用和的组合: 或一个简单的正则表达式: preg_match('/^'.preg_quote('http://www.youtube.com/watch?', '/').'(?:[^&]*&)*?v=([^&]+)/', $u

我想要这个url
http://www.youtube.com/watch?v=dgNgODPIO0w&feature=rec-HM fresh+div要转换为:
http://www.youtube.com/v/dgNgODPIO0w
使用php。

我将使用和的组合:

或一个简单的正则表达式:

preg_match('/^'.preg_quote('http://www.youtube.com/watch?', '/').'(?:[^&]*&)*?v=([^&]+)/', $url, $match);
$url = 'http://www.youtube.com/v/'.$match[1];

我将使用和的组合:

或一个简单的正则表达式:

preg_match('/^'.preg_quote('http://www.youtube.com/watch?', '/').'(?:[^&]*&)*?v=([^&]+)/', $url, $match);
$url = 'http://www.youtube.com/v/'.$match[1];

您知道可以在正则表达式中使用不同的字符而不是/作为分隔符,对吗?无论字符串的第一个字符是什么,都将被视为分隔符,因此您可以使用#或@或~之类的内容来代替/(以避免在url本身中转义反斜杠)。@Dav:是的,我知道。但是你知道
是一个元字符,代表任意字符吗?你知道你可以在正则表达式中使用不同的字符而不是/作为分隔符,对吗?无论字符串的第一个字符是什么,都将被视为分隔符,因此您可以使用#或@或~之类的内容来代替/(以避免在url本身中转义反斜杠)。@Dav:是的,我知道。但是你知道
是一个元字符,代表任意字符吗?
$url = 'http://www.youtube.com/watch?v=dgNgODPIO0w&feature=rec-HM-fresh+div';
$url = preg_replace('@http://www.youtube.com/watch\?v=([^&;]+).*?@', 'http://www.youtube.com/v/$1', $url);
$url = 'http://www.youtube.com/watch?v=dgNgODPIO0w&feature=rec-HM-fresh+div';

preg_match('~(http://www\.youtube\.com/watch\?v=.+?)&.*?~i', $url, $matches);

echo $matches[1];