2010-11-22 4 views
5

я создаю некоторые HTML шаблоны с функциональностью PHP Домс, Теперь я хотел бы добавить некоторые PHP теги в шаблоне т.е.как добавить 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; ?>'); 

моя проблема в том, что дом parser escape the php line.

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

есть ли другой способ сделать это?

+0

Так же, как примечание, это похоже на * плохой план * с точки зрения безопасности , – syrion 2010-11-22 16:38:05

+0

Это не очень хорошая идея. Для чего вы хотите это сделать? – 2010-11-22 16:38:22

ответ

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> 
Смежные вопросы