各位新年快乐 !恭喜发财 !
我用 SNOOPY类  抓网站的数据,把很多的网页合成了一个网页,这个网页里有 很多的table  !
现在我只想取《 table with=1200》 的 TABLE的< td> 里的数据 就是 两根 虚线里的TD内容
不要其他table  XXX的内容    有 什么办法吗?
网页部分代码 大概是这样 
<table width="100">
<tr class="m_title2">
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
</tr>
</table>
............................................
<table width="1200">
<tr class="m_title1">
<td align="center">02-04 09:34:36</td>
<td align="center">888</td>
<td align="center" nowrap>type</td>
<td>news</td>
<td>10000</td>
<td>-10000</td>
<td>0.0</td>
<td>0 / 0.0</td>
<td>50 / 0.0</td>
<td>50 / 0.0</td>
<td>192.168.12.5</td>
</tr>
<tr class="m_title1">
<td align="center">02-05 19:34:36</td>
<td align="center">999</td>
<td align="center" nowrap>type</td>
<td>news</td>
<td>20000</td>
<td>-30000</td>
<td>0.0</td>
<td>0 / 0.0</td>
<td>50 / 0.0</td>
<td>50 / 0.0</td>
<td>102.18.12.56</td>
</tr>
.................................
</table>
<table width="700">
<tr class="m_title2">
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
</tr>

解决方案 »

  1.   

    用正则匹配<table width="1200">的内容就行
      

  2.   


    请给我,preg_match_all  代码啊!
      

  3.   


    preg_match_all('/<table\s+width="1200">(.*?)<\/table>/is',$str,$match)
    print_r($match);
      

  4.   


    非常谢谢 你的帮助,只是我是想要 <td>内容<td> 方便我导入数据库 preg_match_all  可以 <table><td>内容</td></table> 这种写法吗?
      

  5.   

    我想抓出来 数组是这个样的........
    02-05 19:34:36 999 type news 20000 -30000 0.0 0 / 0.0 50 / 0.0 50 / 0.0 102.18.12.56
    02-05 00:34:36 999 type news 10000 -10000 0.0 0 / 0.0 50 / 0.0 50 / 0.0 192.168.12.56
    ........
      

  6.   


    preg_match_all('/<table\s+width="1200">(.*?)<\/table>/is',$str,$match); 
    //print_r($match[1][0]); 
    $s = $match[1][0];
    preg_match_all('/<td[^>]*>(.*?)<\/td>/is',$s,$match);
    print_r($match[1]);
    Array
    (
        [0] => 02-04 09:34:36
        [1] => 888
        [2] => type
        [3] => news
        [4] => 10000
        [5] => -10000
        [6] => 0.0
        [7] => 0 / 0.0
        [8] => 50 / 0.0
        [9] => 50 / 0.0
        [10] => 192.168.12.5
        [11] => 02-05 19:34:36
        [12] => 999
        [13] => type
        [14] => news
        [15] => 20000
        [16] => -30000
        [17] => 0.0
        [18] => 0 / 0.0
        [19] => 50 / 0.0
        [20] => 50 / 0.0
        [21] => 102.18.12.56
    )
      

  7.   

    好久没来csdn了。借楼主地方。。回个贴看看我的状态
      

  8.   


    preg_match_all('/<table\s+width="1200">(.*?)<\/table>/is',$str,$match); 
    //print_r($match[1][0]); 
    $s = $match[1][0];
    preg_match_all('/<tr[^>]*>(.*?)<\/tr>/is',$s,$match);
    foreach($match[1] as $v){
      preg_match_all('/<td[^>]*>(.*?)<\/td>/is',$v,$matches);
      print_r($matches[1]);
      echo "<hr>\n";
    }
    Array
    (
        [0] => 02-04 09:34:36
        [1] => 888
        [2] => type
        [3] => news
        [4] => 10000
        [5] => -10000
        [6] => 0.0
        [7] => 0 / 0.0
        [8] => 50 / 0.0
        [9] => 50 / 0.0
        [10] => 192.168.12.5
    )
    <hr>
    Array
    (
        [0] => 02-05 19:34:36
        [1] => 999
        [2] => type
        [3] => news
        [4] => 20000
        [5] => -30000
        [6] => 0.0
        [7] => 0 / 0.0
        [8] => 50 / 0.0
        [9] => 50 / 0.0
        [10] => 102.18.12.56
    )
    <hr>
      

  9.   


    谢谢 帮助新人 明天 上班的时候就用这些 CODE 谢谢
      

  10.   

    这里如果有子<table>元素,得再考虑一下正则表达式了。