我在这里有一个小问题,到目前为止,还没有多少搜索能够解决。我正在制作一个使用 cURL 从诊断工具中提取数据的脚本。我可以解释更多关于它是如何工作的,但问题只是语法问题,不知道我需要什么。这是我的代码:
$dom = new domdocument;
$dom->loadHTML($curlhtml);
$finder = new DomXPath($dom);
$headname="msg_head";
$statname="msg_sub_head";
$headnodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $headname ')]");
foreach ($headnodes as $head)
{
$header = $head->nodeValue;
$headarray[] = $head->nodeValue;
$statnodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $statname ')]");
${$header}[] = $statnodes->nodevalue;
}
我的目标是将“statnodes”查询中的所有结果加载到单独的数组中,以“headnodes”查询中的所有结果命名。
$head->nodeValue 正是我想要的,因为它应该是因为 $head 在 foreach 循环中声明的。但是, $statnodes->nodeValue 没有。我知道它不应该那样工作,但我不知道我可以通过哪种方式来实现这一点。
如有任何反馈,我将不胜感激,我很乐意根据需要提供回复和编辑以进行任何澄清。