как добавить php теги с помощью dom-парсера - PullRequest
5 голосов
/ 22 ноября 2010

Я создаю несколько шаблонов HTML с функциональностью php doms, Теперь я хотел бы добавить некоторые 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 Ответ

3 голосов
/ 22 ноября 2010

Вам нужна Инструкция по обработке

$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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...