如何使用简单的dom解析器切换css元素?

时间:2014-04-05 08:43:45

标签: php parsing dom

我试图根据div抓取id上的产品说明。如果描述太长,则会显示"显示更多"。 div id简短描述长描述

我的代码在简短描述方面效果很好,但对长描述的DOM解析器不可见。如何切换显示更多,然后调用长描述

function my_function($str){
    $url = $str;
    // break apart ugly affiliate URL
    list($chuck, $keep) = explode('=', $url);
    // call simple DOM library 
    require_once 'libs/simple_html_dom.php';
    // clean up unencoded URL
    $keep = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($keep)); 
    // Get HTML from clean URL
    $html = file_get_html($keep);
    //find div element
    foreach($html->find('*/div[id="short-description"]') as $element){
        echo $element;
    }
}

内容我试图获得。

    <div id='short-description'>
        Eos inciderint interpretaris ea. Eam ut legere aperiri qualisque. 
        In propriae perfecto gubergren        vix. Omnesque perpetua id duo, 
        no mel habeo appetere persecuti. Dico phaedrum qui ad, discere euripidis 
        delicatissimi vim cu.....
        <a class='more'>Show More</a>
    </div>
    <div id='long-description' style='display: none;'>
        Eos inciderint interpretaris ea. Eam ut legere aperiri 
        qualisque. In propriae perfecto gubergren    vix. Omnesque 
        perpetua id duo, no mel habeo appetere persecuti. Dico phaedrum 
        qui ad, discere euripidis delicatissimi vim cu.Eos inciderint 
        interpretaris ea. Eam ut legere aperiri qualisque. 

        <a class='less'>Show Less</a>
    </div>
</div>

更新:已解决 代码一直在工作,没有意识到原始输出附加了标签。它包括

style='display: none; 

所以我无法看到输出结果。我添加了

echo strip_tags($element);

然后我可以看到输出。

0 个答案:

没有答案