处理“PHP HTML DOM Parser”,包括将相同的库分成两个不同的文件

时间:2013-06-25 16:29:33

标签: php dom syntax html-parsing

我有两个访问库simple_html_dom.php

的PHP文件(相同的文件夹)

第一个,caridefine.php有这个:

include('simple_html_dom.php');
$url = 'http://www.statistics.com/index.php?page=glossary&term_id=209';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$curl_scraped_page = curl_exec($ch);
libxml_use_internal_errors(true);
$dom = new DomDocument();
$dom->loadHtml($curl_scraped_page);
$xpath = new DomXPath($dom);
print $xpath->evaluate('string(//p[preceding::b]/text())');

第二个,caridefine2.php有这个:

include('simple_html_dom.php');
$url = 'http://www.statsoft.com//textbook/statistics-glossary/z/?button=0#Z Distribution (Standard Normal)';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$curl_scraped_page = curl_exec($ch);

$html = new simple_html_dom();
$html->load($curl_scraped_page);
foreach ($html->find('/p/a [size="4"]') as $font) {
    $link = $font->parent();
    $paragraph = $link->parent();
    $text = str_replace($link->plaintext, '', $paragraph->plaintext);
    echo $text;
}

另外,他们每个人都运作良好,我运行caridefine.php,它运作良好,caridefine2.php也是如此。 但是当我尝试在其他PHP文件中加载这两个文件时:

        <div class="examples">
            <?php
                $this->load->view('definer/caridefine.php');
            ?>
        </div>

        <div class="examples">
            <?php
               $this->load->view('definer/caridefine2.php');
            ?>
        </div>

他们都没有奏效。刚给我一个空白页面,当我按下CTRL+U时,它说:Cannot redeclare file_get_html() (previously declared in C:\xampp\htdocs\MSPN\APPLICATION\views\Definer\simple_html_dom.php:70) in C:\xampp\htdocs\MSPN\APPLICATION\views\Definer\simple_html_dom.php on line 85

我用谷歌搜索了这个问题,我发现“如果加载许多物体而不清除以前的物体,那可能是个问题。” 我尝试过$html->clear()unset($dom)。它什么都没给我。 是什么让我喜欢在最后一行?

谢谢..

1 个答案:

答案 0 :(得分:0)

我试过分析我自己的问题: 这是更正:

将每个文件中的include('simple_html_dom.php');更改为:require_once('simple_html_dom.php');

发生的事情是文件simple_html_dom.php两次。所以它不会起作用。 应该这样做。