“gethostbyname”无法正常工作


'gethostbyname' isn't working correctly

>编辑:此问题已修复。问题是"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

非常感谢任何帮助!

file()保留在gethostbyname()调用中不起作用的换行符。 此外,您将在末尾添加一个.,因此除了最后一个条目外,您还有:

www.example.com .

file()调用中使用FILE_IGNORE_NEW_LINES,或者在使用字符串之前对字符串使用 trim()