页面有多个下面的片段。
<span class=time>2011-03-3</span>
<div id=csuid1111>内容1</div>
<div class=wpcpfCSS></div><span class=time>2011-07-08</span>
<div id=csuid2222>内容2</div>
<div class=wpcpfCSS></div>这是一个PHP小偷程序,我想要所有的内容(只要蓝色部分内容,注意红色部分不一样),再放到一个数组里,要怎么样截取?新手问题,我搞了好久都没搞定。急啊!!!可能用到的方法:preg_replace()   str_replace()   eregi()

解决方案 »

  1.   


    $html =<<<DOC
    <span class=time>2011-03-3</span>
    <div id=csuid1111>内容1
    </div>
    <div class=wpcpfCSS></div><span class=time>2011-07-08</span>
    <div id=csuid2222>内容2</div>
    <div class=wpcpfCSS></div>
    DOC;preg_match_all('#<div\s*id=["\']?csuid\d+[^>]*>(.*?)</div>?#is', $html, $m);
    print_r($m[1]);
    /*
    Array
    (
        [0] => 内容1 
        [1] => 内容2
    )
    */
      

  2.   


    $str= <<<HTML
    <span class=time>2011-03-3</span>
    <div id=csuid1111>内容1</div>
    <div class=wpcpfCSS></div><span class=time>2011-07-08</span>
    <div id=csuid2222>内容2</div>
    <div class=wpcpfCSS></div>
    HTML;preg_match_all('/csuid\d+>(.*)<\/div>/isU',$str,$arr);
    print_r($arr[1]);Array
    (
        [0] => 内容1
        [1] => 内容2
    )
      

  3.   

    用二楼的代码成功了。还有个小问题:我想再每个内容后面加上个<hr>
    for($i=1; $i<=count($contentArr[1]); $i++){
    $contentArr[1][$i-1] = $contentArr[1][$i-1]."<hr>";
    echo $contentArr[1][$i-1];   //这里能正常显示出每一条加上<hr>后的内容
    }$str=str_replace("{contents}",$contentArr[1],$str);   //页面显示的是Array,我要把所有内容都在这里显示出来要怎么做
      

  4.   

    $str是怎么定义的。把你的代码贴出来。
      

  5.   

    $fp=fopen("templates/template_topic.php","r");
    $str=fread($fp,filesize("templates/template_topic.php"));$str只是个模板文件内容
    $str=str_replace("{contents}",$contentArr[1],$str);  //{contents}是template_topic.php里要替换掉的地方,只是个字符串
      

  6.   

    $str1 = implode('',$contentArr[1]);     //我把数组转成字符串了,这样成功了。
    哎!二维数组真难搞,以后还要多学习一下。谢谢大家!
      

  7.   

    遍历输出数组可以用print_r(),然后有2中方法可以在页面显示,一种是用<pre>标签包着,一种是用ln2br转一下