0

所以我一直在寻找如何做到这一点,但没有成功。我试图从外部网站获取名称测试的值

<input type="hidden" name="test" value="ThisIsAValue" /> 

但到目前为止,我只找到了如何用 ID 获取它的值

<input type="hidden" id="test" name="test" value="ThisIsAValue" autocomplete="off" /> 

但我需要尝试在没有 ID 的情况下找到它是我的问题。这是一个关于如何从 ID 中获取它的示例

<?php

$doc = new DomDocument;

$doc->validateOnParse = true;
$doc->loadHtml(file_get_contents('http://example.com/bla.php'));

var_dump($doc->getElementById('test'));

?>

我已经找到了如何从同一页面上的名称而不是 ID 中获取它

<script>
function getElements()
{
var test = document.getElementsByName("test")[0].value;
alert(test);
}
</script>

但同样我不知道如何从外部页面(例如“ http://example.com/bla.php ”)通过名称获取它的值,有什么帮助吗?

谢谢

4

1 回答 1

0

DOMDocument没有方法getElementsByName()。我建议先收集所有输入,然后手动过滤它们。

$inputs = $doc->getElementsByTagName('input');
$testInput = null;

foreach ($inputs as $input) {
  if ($input->getAttribute('name') === 'test') {
    $testInput = $input;
    break;
  }
}

if (!$testInput) {
  exit('There was an error. input[name="test"] could not be found.');
}

// otherwise dump the input!
var_dump($testInput);
于 2013-11-01T21:50:50.533 回答