从另一个页面 PHP/javascript 获取 document.getElementsByName


Getting document.getElementsByName from another page PHP/javascript

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

<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")按名称获取它的值,有什么帮助吗?

谢谢

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);