douliaotong4944 2013-12-27 03:55
浏览 63
已采纳

PHP简单的HTML DOM解析器:保存Dom树

I am using PHP code to parse a website using PHP Simple HTML DOM Parser and then save multiple div's in a htm file. The problem I am having is saving the DOM Tree. As of the moment the it is being saved using FILE_PUT_CONTENTS and has to use FILE_APPEND so that the div's wont over write each other. But this is a problem as each time the PHP code is run it adds more to the file which I don't want. I looked at a few options but couldn't make sense of it. I hope you can help me and thank you for your time.

Below is my current PHP code

include( 'site/simple_html_dom.php'); 
$html = file_get_html('http://roosterteeth.com/home.php');
foreach ($html->find('div.streamIndividual') as $div) 
{
file_put_contents('site/test.htm', $div, FILE_APPEND | LOCK_EX);
} 

Below is my HTML code with edited PHP

<?php
include( 'site/simple_html_dom.php'); 
$html = file_get_html('http://roosterteeth.com/home.php');
$divContents = array();
foreach ($html->find('div.streamIndividual') as $div)
{
$divContents[] = $div->outertext;
}
file_put_contents('site/test.htm', implode(PHP_EOL, $divContents));
?>
<script type="text/javascript" src="site/jquery.js"></script>
<script type="text/javascript">
$('document').ready(function() {
$('#wrap').load('site/test.htm');
});
</script>
</head>
<body>
<div id="wrap">
</div>
</body>

Below is the link for test.htm

http://roosterteeth.t15.org/site/test.htm

展开全部

  • 写回答

1条回答 默认 最新

  • doulian7252 2013-12-27 03:57
    关注

    I'd still use ->outertext, but simply save the content to an array, and then you can use file_put_contents on the imploded array, and hence overwrite the file with all of the divs:

    <?php
        include( 'site/simple_html_dom.php'); 
        $html = file_get_html('http://roosterteeth.com/home.php');
    
        $divContents = array();
    
        foreach ($html->find('div.streamIndividual') as $div) 
        {
            $divContents[] = $div->outertext;
        }
    
        file_put_contents('site/test.htm', implode(PHP_EOL, $divContents));
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部