php中的foreach循环获取的参数无效
当使用以下代码时,我得到“提供的参数无效”。我可以成功解析ip地址和端口号,但我不知道如何一次获取多个。我的foreach循环不工作。有什么想法吗php中的foreach循环获取的参数无效,php,loops,foreach,Php,Loops,Foreach,当使用以下代码时,我得到“提供的参数无效”。我可以成功解析ip地址和端口号,但我不知道如何一次获取多个。我的foreach循环不工作。有什么想法吗 $dom = new DOMDocument(); $dom->loadHTMLFile($url); $xml = simplexml_import_dom($dom); $dom_results = $xml->xpath("/html/body/div[@id='subpagebgtabs']/div[@id='container'
$dom = new DOMDocument();
$dom->loadHTMLFile($url);
$xml = simplexml_import_dom($dom);
$dom_results = $xml->xpath("/html/body/div[@id='subpagebgtabs']/div[@id='container']/table[@id='listtable']");
$ip_address = $dom_results[0]->tr->td[1]->span;
$ip_post = $dom_results[0]->tr->td[2];
$address_parts = $ip_address.":".$ip_post;
foreach ($address_parts as $address_full){
echo $address_full . "<br>";
}
我想这就是你想要的:
// If results are found
if ( ! empty($dom_results) )
// Loop through each result. Based on your XPath query, the $dom_results
// contains tables. This loops through the rows of the first table.
foreach ( $dom_results[0]->tr as $row )
{
$ip_address = $row->td[1]->span;
$ip_post = $row->td[2];
// Output the address
echo $ip_address . ":" . $ip_post . "<br />";
}
//如果找到结果
如果(!empty($dom_results))
//循环检查每个结果。根据您的XPath查询,$dom\u结果
//包含表。这将遍历第一个表的行。
foreach($dom_results[0]->tr as$row)
{
$ip_地址=$row->td[1]->span;
$ip_post=$row->td[2];
//输出地址
echo$ip_地址。“:”$ip_帖子。“
”;
}
您似乎想要提取所有ip地址和端口号,并将其像
IP地址:端口
所以试试这个
foreach($dom_results as $dom) {
$ip = $dom->tr->td[1]->span;
$port = $dom->tr->td[2];
$address = $ip . ":". $port;
echo $address . "<br />";
}
foreach($dom\u结果为$dom){
$ip=$dom->tr->td[1]->span;
$port=$dom->tr->td[2];
$address=$ip.“:”$port;
echo$地址。“
”;
}
$address\u parts
在我看来不像数组。我可以看到$address\u parts不是数组。你知道$address\u parts应该是数组吗?@todda.speot.is我对$dom\u结果进行了变量转储并更新了我的帖子。你能解释一下我现在如何返回所有的ip地址和端口号吗?你想在这里用ip地址做什么?如果你解释一下,我们可以给你一个答案。我想这是我需要的,但它只返回页面上ip地址的1。有没有一种方法可以让它一次返回所有数据?@sarsar-我已经更新了答案,以循环遍历每个表行(TR),而不是每个表。这可能会解决问题。目前还不太清楚(现在仍然不清楚)数据是如何存储在您试图解析的表中的。
foreach($dom_results as $dom) {
$ip = $dom->tr->td[1]->span;
$port = $dom->tr->td[2];
$address = $ip . ":". $port;
echo $address . "<br />";
}