我正在尝试将包含大部分html代码的php文件加载到DOMdocument中,以便我可以访问页面上某些输入表单的值。这是我正在使用的代码:
$dom = new DOMDocument();
$html = file_get_contents('./drafter.php');
$dom->load($html);
$rw = $dom->getElementById('rW')->nodeValue;
这是drafter.php文件中的rW的html:
<input type="text" id="rW" size="3" maxlength="4"value="1100"/>
我做错了什么?谢谢你的帮助。
答案 0 :(得分:2)
nodeValue
包含标记的内部值,例如text
内的<p>text</p>
。你想要的是value
属性:
$rw = $dom->getElementById('rW')->getAttribute("value");
请注意,如果您希望drafter.php
以file_get_contents()
的形式执行ob_start();
include("../drafter.php");
$html = ob_get_contents();
ob_end_clean();
// Then load it into the DOM
$dom->load($html);
,则不会。其内容只能作为纯文本文件读取。如果您需要以PHP格式执行文件,则可以包含它并使用输出缓冲来捕获内容:
{{1}}
答案 1 :(得分:1)
我建议使用这个名为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;