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

时间:2013-12-27 11:55:04

标签: javascript php jquery html dom

我使用 PHP 代码使用 PHP Simple HTML DOM Parser 解析网站,然后在 htm中保存多个 div 文件。我遇到的问题是保存 DOM树。目前,使用 FILE_PUT_CONTENTS 保存它,并且必须使用 FILE_APPEND ,以便 div 不会相互写入。但这是一个问题,因为每次运行 PHP 代码时,它都会向我不想要的文件添加更多内容。我看了几个选项,但无法理解它。我希望你能帮助我,谢谢你的时间。

以下是我当前的 PHP 代码

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

以下是我的 HTML 代码,其中包含已编辑的 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>

以下是 test.htm

的链接

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

1 个答案:

答案 0 :(得分:2)

我仍然使用->outertext,但只是将内容保存到数组中,然后您可以在内爆数组上使用file_put_contents,从而使用 all of 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));
?>