如何解析隐藏的输入值

时间:2011-03-19 02:02:46

标签: php parsing dom

我在这里找不到任何内容或google与解析隐藏的输入值有关。例如这段代码。我正在尝试解析40个字符的密钥。

<input type="hidden" name="key" value="c126b4f134cb2c1184c1585fdfa4d1b0013a12f4"> 

我试过这个,但它永远不会返回任何隐藏的值。

libxml_use_internal_errors(TRUE);
    $dom = new DOMDocument;
    $dom->loadHTMLFile('http://www6.cbox.ws/box/?boxid=524970&boxtag=7xpsk7&sec=form');
    libxml_clear_errors();

    $xp = new DOMXpath($dom);
    $nodes = $xp->query('//input/@value');
    foreach($nodes as $node)
        {
          echo( $node->textContent . "<br><br>" );
        }

var_dump($node);

更新代码

libxml_use_internal_errors(TRUE);
$dom = new DOMDocument;
$dom->loadHTMLFile('http://www6.cbox.ws/box/?boxid=524970&boxtag=7xpsk7&sec=form');
libxml_clear_errors();

$xp = new DOMXpath($dom);
$nodes = $xp->query('//input[type="hidden"]');
$val = $nodes->getAttribute('value');

var_dump($val);

返回此错误,引用行“$ val = $ nodes-&gt; getAttribute('value');”

Fatal error: Call to undefined method DOMNodeList::getAttribute()

2 个答案:

答案 0 :(得分:2)

$nodes = $xp->query('//input[type="hidden"]');
foreach ($nodes as $node) {
    $val = $node->getAttribute('value');
}

评论后续:

如果您查看代码示例中包含的页面源代码,您会看到只有一个隐藏的表单字段,并且它有一个空值:

<input type="hidden" name="key" value="">

当然XPath将返回一个NULL - 这就是存储在该value属性中的内容:nothing。

答案 1 :(得分:0)

使用您的更新代码,固定版本将是:

<?php

libxml_use_internal_errors(TRUE);
$dom = new DOMDocument;
// This link is now dead...
$dom->loadHTMLFile('http://www6.cbox.ws/box/?boxid=524970&boxtag=7xpsk7&sec=form');
libxml_clear_errors();

$val = array(); // Must be set before foreach loop

$xp = new DOMXpath($dom);
$nodes = $xp->query('//input[type="hidden"]');
foreach ($nodes as $node) {
    $val[] = $node->getAttribute('value');
}

var_dump($val);

?>