Php 更改url字符串
我想要这个urlPhp 更改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
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];