我使用PHP在DOM服务器端创建了主文档。我必须包含一些没有DOM的PHP / HTML。 例。文件 form.php 包含表单
<form action="" method="post">
<input type="text" name="firstname" id="firstnameid" /><br/>
<input type="submit" name="submit" value="Submit" />
</form>
我想将该表单放入文件 index.php 中使用DOM创建的<DIV>
。内部的DIV取决于其他逻辑(条件$form_is_needed
)
<!DOCTYPE html>
<html lang="en">
<head> <meta charset="utf-8" /> </head>
<body>
<?php
$form_is_needed = true;
$dom = new DOMDocument();
$domDiv = $dom->createElement("div");
if ($form_is_needed) {
// trying load not DOM
$str = file_get_contents('form.php');
$domDivText = $dom->createTextNode( html_entity_decode( $str ) );
$domDiv->appendChild($domDivText);
}
else {
$domDivText = $dom->createTextNode( "There is no form." );
$domDiv->appendChild($domDivText);
}
$dom->appendChild($domDiv);
$html = $dom->saveHTML();
echo $html;
?>
</body>
</html>
我在DIV中获取了我的内容,但添加了转义字符
<div><form action="" method="post">
<input type="text" name="firstname" id="firstnameid" /><br/>
<input type="submit" name="submit" value="Submit" />
</form>
</div>
答案 0 :(得分:1)
据我所知,没有可以发出原始内容的节点,但如果它格式正确,您可以尝试将其加载到DOMDocumentFragment
并以这种方式附加:
$frag = $dom->createDocumentFragment();
$frag->appendXML($str);
$domDiv->appendChild($frag);
答案 1 :(得分:0)
替换
$str = file_get_contents('form.php');
使用
$str = readfile('form.php');
应该这样做。