从字符串中提取特定信息

时间:2011-05-12 01:40:31

标签: php

我有一个包含youtube视频地址的字符串,我想用它来在弹出式灯箱中显示视频。在当前形式中,链接在灯箱中不起作用:

http://www.youtube.com/v/CD2LRROpph0?f=videos&c=TEST&app=youtube_gdata&version=3

我有一个想法是提取视频ID“CD2LRROpph0”并将其附加到常规的YouTube网址,例如

http://www.youtube.com/watch?v=CD2LRROpph0. 

我知道我在灯箱中工作。

关于如何从字符串???

中提取此代码的任何想法

3 个答案:

答案 0 :(得分:1)

这个会处理不同的协议和不同的YouTube网址(例如,如果YouTube推出了针对特定国家/地区的TLD)。

$urlTokens = parse_url($url);

$newUrl = $urlTokens['scheme'] . '://' . $urlTokens['host'] . '/watch?v=' . preg_replace('~^/v/~', '', $urlTokens['path']);

CodePad

答案 1 :(得分:0)

$newUrl = preg_replace('@http://www.youtube.com/v/([a-z0-9_\-]{11}).*$@i', 
   'http://www.youtube.com/watch?v=$1', $string);

答案 2 :(得分:0)

或者试试这个,你得到一个数组,可以使用你想要的查询 http://www.php.net/manual/en/function.parse-url.php