【发布时间】:2018-03-14 15:37:48
【问题描述】:
我正在尝试获取表中域列表的 NS 和 A 记录。
我已经开始写这个了:
$domains = GetDomainsForDNS();
foreach ($domains as $domain){
$domain_id = $domain[0];
$domain = $domain[1];
$dns_records = dns_get_record($domain, DNS_NS + DNS_A);
echo $domain;
foreach($dns_records as $dns_record){
if (!$dns_record){
//var_dump($dns_record);
echo "empty";
}
}
}
$domains 是我要检查的表中的 id 和域。
我收到的警告是:
警告:为后面的 foreach 提供的 foreach() 参数无效
和
警告:dns_get_record():对 dns_get_record 的 DNS 查询失败
当 dns_get_record() 没有找到任何东西时,我会收到这些错误。
我正在尝试将这些域标记为数据库中存在问题,因此我需要一种方法来检测它们。我尝试了 empty() 和其他方法来检测它们,但我所做的一切都会引发上面的 php 警告。
这是因为它是一个多维数组吗?我该如何正确地做到这一点。
谢谢
【问题讨论】:
-
dns_get_record():可以返回 false,这是foreach的无效输入 -
您能否添加源数据的样本 - 即:
$domains? -
问题当然是
dns_get_record。先测试一下结果。 -
@RamRaider 没问题,数据样本:
Array ( [0] => Array ( [id] => 64 [0] => 64 [domain] => wistia.net [1] => wistia.net ) [1] => Array ( [id] => 249 [0] => 249 [domain] => applianceadventures.com [1] => applianceadventures.com ) [2] => Array ( [id] => 378 [0] => 378 [domain] => paintballpursuit.com [1] => paintballpursuit.com )) -
感谢您 - 很难阅读,但没关系。毫无疑问,如果需要,您可以从下面的代码中挑选想法;-)
标签: php arrays error-handling is-empty dns-get-record