这是一段优酷的通用视频播放代码
$flag="<iframe height=498 width=510 src='http://player.youku.com/embed/XMzkzODk0MTc1Ng==' frameborder=0 'allowfullscreen'></iframe>";
我现在只想要 'http://player.youku.com/embed/XMzkzODk0MTc1Ng==' 这链接部分
正则匹配表达式:'/iframe .*?[\'\"](.*?)[\'\"]/';
分析一下:
1 /iframe ;这部分开头部分,是以指定字符开头。
2 .*? 这是三个其中 "." 是元字符:表示匹配除换行符以外的任意字符 / "*","?"是限定符,限定字符出现的次数。“*”重复0次或更多次; “?”是重复0次或一次。
3 [\'\"] :方括号是 字符集合,匹配方括号中的任意一个字符
4 (.*?) :圆括号是 分组 匹配圆括号中所有字符串,而且可以在后面指定次数,上面没指定就是匹配一次
最后以 分号结尾。
如何获取想要的链接部分呢?
php 有个正则匹配函
preg_match()常用的有三个参数
1 正则表达式;2 被查找的字符串;3 接收结果的变量
用法: preg_match( '/iframe .*?[\'\"](.*?)[\'\"]/', htmlspecialchars_decode($flag),$match );
htmlspecialchars_decode: 存入数据库的html代码,很可能被转换了,需要转回来。
匹配到的结果就在 $match 中、