使用PHP dom访问元素时出现问题


trouble accessing element with PHP dom

我正试图将一个主要包含html代码的php文件加载到DOMdocument中,这样我就可以访问页面上一些输入表单的值。这是我正在使用的代码:

$dom = new DOMDocument();
$html = file_get_contents('./drafter.php');
$dom->load($html);  
$rw = $dom->getElementById('rW')->nodeValue;

这是drawer.php文件中rW的html:

<input type="text" id="rW" size="3" maxlength="4"value="1100"/>

我做错了什么?谢谢你的帮助。

nodeValue保存标记的内部值,就像<p>text</p>中的text一样。您想要的是value属性:

 $rw = $dom->getElementById('rW')->getAttribute("value");

请注意,如果您希望file_get_contents()drafter.php作为PHP执行,则不会。它的内容将作为纯文本文件读取。如果您需要以PHP形式执行文件,可以将其包含在内,并通过输出缓冲捕获内容:

ob_start();
include("../drafter.php");
$html = ob_get_contents();
ob_end_clean();
// Then load it into the DOM
$dom->load($html);

我建议使用这个名为simple html-dom:)的php库。它支持"jquery样式"选择器

问题解决方案:

$html = str_get_html('<input type="text" id="rW" size="3" maxlength="4"value="1100"/>');
$value = $html->find("#rw")->value;

http://simplehtmldom.sourceforge.net/