所以我一直在寻找如何做到这一点,但没有成功。我试图从外部网站获取名称测试的值
<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);