<dl>
<dd class="photo"><div class="rank"><span class="level1">8</span></div><div class="pbox"><a href="http://www.baidu.com/to.aspx?pid=3017468749" target="_blank"><img src="http://img01.taobaocdn.com/bao/uploaded/i1/T1tpRKXdtvXXcLHxQ7_064743.jpg_sum.jpg"/></a></div></dd>
<dd class="name"><a href="http://www.baidu.com/to.aspx?pid=3017468749" target="_blank">标题</a><p>卖家:<a href="http://www.baidu.com/to.aspx?uid=0287cf6c19f6b83d2098ef56abb326af" target="_blank">我是卖家名 <img src="http://img.baidu.com/s_cap_1.gif"></a></p></dd>
<dd class="price">¥139.00</dd>
<dd class="sellnum">月销量超<span>1</span>件</dd>
<dd class="area">辽宁大连</dd>
</dl>
 我要提取 有用的东西  比如图片地址 卖家名称 标题 等等 
  这个要怎么写    麻烦高手赐教

解决方案 »

  1.   


    preg_match_all("<dd[^>]*>(?:<(?!/?dd)[^<>]*>)*([\d\D]+)(?:<(?!/?dd)[^<>]*>)*</dd>",$scr,$infoarray);不知对否,还没验证
      

  2.   


    preg_match_all("#<dd[^>]*>(?:<(?!/?dd)[^<>]*>)*([\d\D]+)(?:<(?!/?dd)[^<>]*>)*</dd>#",$scr,$infoarray);好像漏写了点啥
      

  3.   


    $scr = "<dl>
    <dd class=\"photo\"><div class=\"rank\"><span class=\"level1\">8</span></div><div class=\"pbox\"><a href=\"http://www.baidu.com/to.aspx?pid=3017468749\" target=\"_blank\"><img src=\"http://img01.taobaocdn.com/bao/uploaded/i1/T1tpRKXdtvXXcLHxQ7_064743.jpg_sum.jpg\"/></a></div></dd>
    <dd class=\"name\"><a href=\"http://www.baidu.com/to.aspx?pid=3017468749\" target=\"_blank\">标题</a><p>卖家:<a href=\"http://www.baidu.com/to.aspx?uid=0287cf6c19f6b83d2098ef56abb326af\" target=\"_blank\">我是卖家名 <img src=\"http://img.baidu.com/s_cap_1.gif\"></a></p></dd>
    <dd class=\"price\">¥139.00</dd>
    <dd class=\"sellnum\">月销量超<span>1</span>件</dd>
    <dd class=\"area\">辽宁大连</dd>
    </dl>";
    $infoarray = array();
    $scr = preg_replace("#<(?!/?dd)[^<>]*>#","",$scr);
    preg_match_all("#<dd[^>]*>([^<>]+?)</dd>#",$scr,$infoarray);
    print_r($infoarray[1]);由于中间有被标签断开的地方,所以如果能够先过滤标签可能比较好。这个是测试后的效果,试试符合需求不。
      

  4.   

    我需要的数据:1、<span class=\"level1\">8</span> 这里的 8
    2、<a href=\"http://www.baidu.com/to.aspx?pid=3017468749\" target=\"_blank\">   pid的的数字
    3、<img src=\"http://img01.taobaocdn.com/bao/uploaded/i1/T1tpRKXdtvXXcLHxQ7_064743.jpg_sum.jpg\"/>  图片地址
    4、<a href=\"http://www.baidu.com/to.aspx?pid=3017468749\" target=\"_blank\">标题</a>  标题
    5、<p>卖家:<a href=\"http://www.baidu.com/to.aspx?uid=0287cf6c19f6b83d2098ef56abb326af\" target=\"_blank\">我是卖家名 <img src=\"http://img.baidu.com/s_cap_1.gif\"></a></p>  卖家昵称
    6、<dd class=\"price\">¥139.00</dd>   价钱
    7、<dd class=\"sellnum\">月销量超<span>1</span>件</dd>  销量
    8、<dd class=\"area\">辽宁大连</dd>  地址
      

  5.   

    这个需求的话,preg_match_all来做可能有些为难了,太绕了。
    可能一个一个匹配获得比较好,网页格式比较固定的情况下,你对每个要取的内容分别写正则来获得吧,一次全匹配写起来头大,会很长很绕。一个一个写清晰些。
      

  6.   

    抓站吧?一个个写吧,preg_metch(),慢慢来,抓站都是一条条记录抓的,抓一条信息存一条入数组,好处是操作简单,思路清晰