编辑:此问题已修复。问题是'gethostbyname'正在从文件中获取新行。感谢AbraCadaver指出这一点。
我有一个CSV数据列表,我将其转换为数组,CSV数据有两列,一个帐户和一个域名。我的工作是遍历所有域名,将它们转换为IP,并确定我们是否拥有IP地址。但问题是'gethostbyname'函数仅适用于数组中的最后一项。我做错了什么?
<?php
// Error reporting
ini_set("display_startup_errors", 1);
ini_set("display_errors", 1);
error_reporting(-1);
// Load the CSV file
$rawInput = file("data.csv");
// Format the data
$newData = array();
foreach ($rawInput as $entry) {
$exData = explode(",", $entry);
array_push($newData, array(
"account" => $exData[0],
"address" => $exData[1]
));
}
// Let the magic begin...
$finalOutput = "";
foreach ($newData as $dataEntry) {
// Check if we own the IP
$ipAdrr = gethostbyname("www.".$dataEntry["address"]."."); // It doesn't work without the trailing '.' too
$exData = explode(".", $ipAdrr);
var_dump($exData); echo("<br>");
/*if (intval($exData[0]) == 188 && intval($exData[0]) == 64) {
}*/
}
// Finalise table
$finalOutput = $finalOutput."\t\t\t</table>\n";
?>
CSV文件看起来像这样。
example,example.com
example,example.com
example,example.com
example,example.com
example,example.com
example,example.com
example,example.com
example,example.com
example,example.com
example,example.com
非常感谢任何帮助,非常感谢!
答案 0 :(得分:1)
file()
保留了在gethostbyname()
来电中不起作用的换行符。此外,您要在末尾添加.
,以便您拥有最后一个条目:
www.example.com
.
在FILE_IGNORE_NEW_LINES
电话中使用file()
或在字符串上使用trim()
,然后再使用它。