douliaotong4944 2013-12-27 11: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 11: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));
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况