如何使用dom解析器添加php标签

时间:2010-11-22 16:33:32

标签: php dom

我使用php doms功能创建了一些HTML模板, 现在我想在我的模板中添加一些php标签 即。

$input = $this->dom->createElement('input');
$input->setAttribute("type", "text");
$input->setAttribute("name", $name);
$input->setAttribute("class", "input");
$input->setAttribute("id", $name);
$input->setAttribute("value", '<?=$foo->bar; ?>');

我的问题是,dom解析器逃脱了php行..

<input type="text" name="id" class="input" id="id" value="\&lt;?=$content-&gt;id;?&gt;" />

还有另一种方法吗?

1 个答案:

答案 0 :(得分:3)

您需要Processing Instruction

$php = $dom->createProcessingInstruction('php', 'echo $foo->bar;');

完整示例:

$dom = new DOMDocument;
$dom->loadXml('<html><head><title>Test</title></head><body/></html>');
$dom->getElementsByTagName('body')->item(0)->appendChild(
    $dom->createProcessingInstruction('php', 'echo $foo->bar;')
);
$dom->format = TRUE;
echo $dom->saveXML();

结果:

<?xml version="1.0"?>
<html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <?php echo $foo->bar;?>
  </body>
</html>