$html =<<<doc
<img width="100" id="ab_0" name="ab_0" height="80" src="images/ab.jpg" />
<img width="100" id="ab_0" name="ab_0" height="80" src="http://www.baidu.com/images/cd.gif" />
doc;
preg_match_all('#src\s*=\s*["\']?([^\s"\']*)#i', $html, $match);
foreach($match[1] AS $v)
{
echo basename($v);
}
这里帮忙具体解释一下这个正则,谢谢
另:#是什么意思啊?
<img width="100" id="ab_0" name="ab_0" height="80" src="images/ab.jpg" />
<img width="100" id="ab_0" name="ab_0" height="80" src="http://www.baidu.com/images/cd.gif" />
doc;
preg_match_all('#src\s*=\s*["\']?([^\s"\']*)#i', $html, $match);
foreach($match[1] AS $v)
{
echo basename($v);
}
这里帮忙具体解释一下这个正则,谢谢
另:#是什么意思啊?
/你的正则/
@你的正则@
这么写都是可以的。注意特别有些时候/<\/a>/这种匹配a标签后半截的,中间出现了/就得转义,麻烦,写成#</a>#就很方便了。这个正则表达式匹配的是每个src里面的内容,考虑到了src = ‘可能的单双引号、等号前后有空白等情况。
preg_match_all('#src\s*=\s*["\']?([^"\']*)#i', $html, $match);
就行了,是吧?