【发布时间】:2009-09-01 11:43:29
【问题描述】:
我希望用 php 将此网址 http://www.youtube.com/watch?v=dgNgODPIO0w&feature=rec-HM-fresh+div 转换为:http://www.youtube.com/v/dgNgODPIO0w。
【问题讨论】:
我希望用 php 将此网址 http://www.youtube.com/watch?v=dgNgODPIO0w&feature=rec-HM-fresh+div 转换为:http://www.youtube.com/v/dgNgODPIO0w。
【问题讨论】:
$url = 'http://www.youtube.com/watch?v=dgNgODPIO0w&feature=rec-HM-fresh+div';
$parts = parse_url($url);
parse_str($parts['query'], $params);
$url = 'http://www.youtube.com/v/'.$params['v'];
或者一个简单的正则表达式:
preg_match('/^'.preg_quote('http://www.youtube.com/watch?', '/').'(?:[^&]*&)*?v=([^&]+)/', $url, $match);
$url = 'http://www.youtube.com/v/'.$match[1];
【讨论】:
.是一个元字符,代表任意字符吗?
$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];
【讨论】: