我正试图将一个主要包含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/