如何使用preg_match从以下嵌入链接获取id

时间:2015-04-20 23:53:24

标签: php regex

好的,如果我有这个网址:

 <iframe width="510" height="400" src="http://xhamster.com/xembed.php?video=XXXXXX" frameborder="0" scrolling="no"></iframe>

我可以使用

获取视频ID
preg_match('/video=([a-zA-Z0-9]+)/', $url, $url_data);

我如何对此网址执行相同的操作:

<iframe src="http://flashservice.xvideos.com/embedframe/XXXXX" frameborder=0 width=510 height=400 scrolling=no></iframe>

XXXX是id

我真的不确定我用正则表达式做什么

2 个答案:

答案 0 :(得分:1)

preg_match('/src=".*\/([a-zA-Z0-9]+)"/', $url, $url_data);

或者因为src可能是大写字母,所以添加不区分大小写:

preg_match('/src=".*\/([a-zA-Z0-9]+)"/i', $url, $url_data);

另一个改进是避免过度贪婪的匹配,其中url中的其他属性字段可能具有&#34; /&#34;字符,修改为:

preg_match('/src=".*?\/([a-zA-Z0-9]+)"/i', $url, $url_data);

答案 1 :(得分:1)

看看你想要捕捉的字符串,注意区别。第一个有?video=。第二个具有不同的结构。尝试这样的事情:

preg_match('/embedframe\/([a-zA-Z0-9]+)/', $url, $url_data);