0

我有一个 PHP 类,用于通过以下方式生成一些 HTML:

public $rName;
public $cName;
public $rMonth;

function __construct(){
    $this->report = new DOMDocument;
    $this->report->loadHTMLFile('template.php');
}

private function addComponent($tag, $content){
    $parent = $this->report->getElementById('content');
    $child = $this->report->createElement($tag, $content);
    $parent->appendChild($child);
}

function addSection($header){
    $this->addComponent('h2', $header);
}

function addSubHeader($subHeader){
    $this->addComponent('h3', $subHeader);
}

function addContent($content){
    $this->addComponent('p', $content);
}

被称为这样的:

$report = new Report;

$outputType = $_GET['outputType'];

$report->rName = 'rName';
$report->cName = $_GET['cName'];
$report->rMonth = $_GET['rMonth'];

$report->addSection('Section');
$report->addSubHeader('SubHeader');
$report->addContent('Content');

在 Windows 上使用 XAMPP,这段代码工作得非常好。但是在centos环境中我得到了错误:

在第 16 行调用非对象上的成员函数 appendChild()

第 16 行是:

$parent->appendChild($child);

template.php 文件似乎正在加载,并且有一个 id 为“content”的 div,但是 $parent 上的 gettype() 将其显示为 NULL。

此刻颇为难过。有任何想法吗?

4

1 回答 1

1

在旧版本的 PHP 中,getElementById需要在 DTD 中指定 id 属性。

<!DOCTYPE html>在这种情况下,在 HTML 的开头插入可能就足够了。

于 2013-10-24T14:01:14.690 回答