简体   繁体   中英

PHP Simple HTML DOM Parser: Saving Dom tree

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

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));
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM