我完全使用XPath提取我想要的文本。我想将这些值存储到$items
数组中,但我得到的只是最后一个循环的值。我试图将$items = array();
放在foreach ($pdo->query($sql) as $row) {
之外,但这没有帮助。我已经看到了其他有关该问题的帖子,但这些解决方案对我也没有帮助。
...
foreach ($pdo->query($sql) as $row) {
$items = array();
$tableMainQuery = '//h3[@class="clk"]';
$nodes = $xpath->query( $tableMainQuery );
foreach( $nodes as $node ) {
$result = htmlentities( getInnerHTML( $node ) );
$content = $result;
$start = 'href="';
$end = '"';
$website = getBetween($content,$start,$end);
$items[url] = $website;
}
$tm_street = '//span[contains(@class,"result_url_heading")]';
$nodes_tm_street = $xpath->query( $tm_street );
foreach( $nodes_tm_street as $node_tm_street ) {
$street = ( getInnerHTML( $node_tm_street ) );
$items[name] = $street;
}
}
希望你能帮助我!谢谢!
答案 0 :(得分:0)
你可以覆盖每个tiem的数组值,修改你的代码,
$items[url] = $website;
至$items['url'][] = $website;
$items[name] = $street;
至$items['name'][] = $street;
答案 1 :(得分:0)
你只是在循环中得到最后一个结果,因为你要覆盖写入变量的所有内容。
这都是关于PHP运营商的;)
对所需的变量进行尝试:
$items[name] += $street;
这会将任何其他数据添加到变量中,而不会在每次循环时覆盖其中的内容。
我希望这会有所帮助。