preg_match_all('/ <a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>(.+) <\/a>/i',$code,$arr); 

解决方案 »

  1.   

    <?php
    $html = '<a href="displayproduct.html?proID=1801939"  target="_blank">
    <img src="/data/2006/s/db_pictures/200805/07/1208345660135527.jpg"  border="0">
    </a>
    <a href="displayproduct.html?proID=1801939"  target="_blank"  class="proname">
        风光互补控制逆变一体...
    </a> ';
    preg_match_all("/<(img|a).+?(href|src)=[\"|']?([^\"|'|>|\s]+[\"|']?).*?>([^<]+)<\/a>/i",$html,$mats);
    var_export($mats);
    ?>
      

  2.   

    <?php
    $str = '
    <a href="product.html?proID=1801939" target="_blank"> 
    <img src="/data/2006/s/db_pictures/200805/07/1208345660135527.jpg" border="0"> 
    </a>
    <a href="display.html?proID=1801939" target="_blank" class="proname"> 
        风光互补控制逆变一体... 
    </a>
    ';$p = "/<[\w]+ [\w]+=\"([\S]*)\" (.*)\>/i";
    preg_match_all($p,$str,$array);print_r($array[1]);?>
      

  3.   

    $patten = "/<(a|link|img)\s+([^>]*?)(\s*(href|src)\s*=\s*(['\"])?\s*([^\s]+?)\s*\\5?)(?=\s|>)([^>]*?)>/is";