<div lowercabinindex="5" fltrph="010601" price="1150" time="20" name="aflight" class="oneflight">
      <div class="flighticon">...</div>
      <div class="flightnumber">..</div>
      <div class="flightMark">.......</div>
</div>怎么通过oneflight获取整个完整的div
oneflight里有未知个div

解决方案 »

  1.   

    这个最好用dom + xpath吧
      

  2.   

    不知道这样能满足你的要求不:   $str=<<<EOF
      <div   lowercabinindex= "5 "   fltrph= "010601 "   price= "1150 "   time= "20 "   name= "aflight "   class= "oneflight ">
                <div   class= "flighticon "> ... </div>
                <div   class= "flightnumber "> .. </div>
                <div   class= "flightMark "> ....... </div>
      </div> 
    EOF;
       preg_match("/<div[^>]+class= \"oneflight \">(.*)<\/div>/is",$str,$arr);
       echo $arr[0];
      

  3.   

    如果页面中有多个oneflight ,是否能完整的找出每一个
      

  4.   

    那就要根据div的其他属性来分辨了。
      

  5.   


    这个如果后面还有div会贪婪match的
      

  6.   

    我只是想最后得到这样的结果Array
    (
        [0] => Array
            (
                [0] =><div lowercabinindex="5" fltrph="010601" price="1150" time="20:20" id="aflight" name="aflight" class="oneflight">
    <div class="flightinfo">
    <div class="flighticon">111111</div>
    <div class="flightnumber">111111</div>
    <div class="flightMark">111111</div>
    <div class="avtimediv">111111</div>
    <div class="avtimediv">111111</div>
    </div>
    </div>
                [1] =><div lowercabinindex="5" fltrph="010601" price="1150" time="20:20" id="aflight" name="aflight" class="oneflight">
    <div class="flightinfo">
    <div class="flighticon">222222</div>
    <div class="flightnumber">222222</div>
    <div class="flightMark">222222</div>
    <div class="avtimediv">222222</div>
    <div class="avtimediv">222222</div>
    </div>
    </div>
    )
    )
      

  7.   

       $str=<<<EOF
       其他文字<div class= "oneflight">==</div>
      <div   lowercabinindex= "5 "   fltrph= "010601 "   price= "1150 "   time= "20 "   name= "aflight "   class= "oneflight">
                <div   class= "flighticon "> ... </div>
                <div   class= "flightnumber "> .. </div>
                <div   class= "flightMark "> ....... </div>
      </div> 
    EOF;
    $doc = new DOMDocument;
    //$doc->preserveWhiteSpace = false;
    $doc->loadHTML($str);$xpath = new DOMXPath($doc);
    $query = '//div[@class="oneflight"]';
    $entries = $xpath->query($query);$arr = array();
    foreach ($entries as $entry) {    $arr[] =  $doc->saveHTML($entry);
    }var_dump($arr);
      

  8.   

    注意:原字串中class= "oneflight "里面有个空格,我把它去掉了如果要宽松选择,需要修改xpath的写法
      

  9.   

    $query = '//div[contains(@class,"oneflight")]';这个可以匹配上面说的空格
      

  10.   

    jquery最简单
    alert($('#oneflight').html());