$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);
}
这里帮忙具体解释一下这个正则,谢谢
另:#是什么意思啊?

解决方案 »

  1.   

    #你的正则#
    /你的正则/
    @你的正则@
    这么写都是可以的。注意特别有些时候/<\/a>/这种匹配a标签后半截的,中间出现了/就得转义,麻烦,写成#</a>#就很方便了。这个正则表达式匹配的是每个src里面的内容,考虑到了src  = ‘可能的单双引号、等号前后有空白等情况。
      

  2.   

    preg_match_all('#src\s*=\s*["\']?([^\s"\']*)#i', $html, $match);修改为
    preg_match_all('#src\s*=\s*["\']?([^"\']*)#i', $html, $match);
    就行了,是吧?