好的,如果我有这个网址:
<iframe width="510" height="400" src="http://xhamster.com/xembed.php?video=XXXXXX" frameborder="0" scrolling="no"></iframe>
我可以使用
获取视频IDpreg_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
我真的不确定我用正则表达式做什么
答案 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);