使用php Dom在div中获取php标签

时间:2015-04-02 04:14:20

标签: php dom

我试图通过id获取元素内的值来获取元素,当我尝试这样做时,我得到的值是'游戏和新游戏发布'从div和我根本得不到php值和php标签。 < ? php echo hellow world如下图所示。我想在变量$ existing_Data中获取div的所有内容,包括< ? php和< h1>等。

$selected_div = "div_footer";
$file = '../myfolder/22selected.php';
$file_get = file_get_contents($file);

/* // which one to use here ? i am getting a headache !
$file_entity = htmlentities($file_get);
$file_htmlcharac = htmlspecialchars($file_entity);
$file_strip = stripslashes($file_htmlcharac);
*/

$doc = new DOMdocument();
$doc->loadHTML($file_get);
$element = $doc->getElementById($selected_div);
$existing_Data = $element->firstChild->nodeValue;

echo '<table>';
echo '<form action= "existing_Data.php" method = "POST">';
echo 'Text Content <textarea rows="12" cols="60" name="content" id ="text_content">' . $existing_Data . '</textarea>';
echo '<input type ="submit" name = "submit" id = "submit" value = "Submit" ></form>';

// div_footer CONTENTS 
<div id = "div_footer">
<h1> All games</h1>
<p> new games releases</p>
<?php echo "hello world"; ?>
</div>

1 个答案:

答案 0 :(得分:1)

从你的节目中,我们无法猜出你想要达到的目标。

当你使用file_get_contents()没有方案(http,ftp,..)打开文件时,PHP会尝试通过本地文件系统打开文件,因此PHP不会解释这些标记。缺点是,它不是有效的XML / HTML,因此DOM解析器无法提供帮助。

您应该将数据写入数据库或至少XML,JSON或纯文本文件。要获得价值,您需要做的就是$value = trim(file_get_contents('../mydata.txt'));

另一种情况是,您希望(http-)POST该数据。然后没有理由使用DOM解析器。只需将数据放入隐藏字段<input type="hidden" name="data" value="<?php echo $data; ?>

要防止不同(并非所有)类型的XSS,请参阅

htmlentities() vs. htmlspecialchars()

How to prevent XSS with HTML/PHP?

我强烈建议阅读此质量保证:

<强> What are the differences between server-side and client-side programming?