'的gethostbyname'没有正常工作

时间:2014-11-26 17:01:43

标签: php

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

非常感谢任何帮助,非常感谢!

1 个答案:

答案 0 :(得分:1)

file()保留了在gethostbyname()来电中不起作用的换行符。此外,您要在末尾添加.,以便您拥有最后一个条目:

www.example.com .

FILE_IGNORE_NEW_LINES电话中使用file()或在字符串上使用trim(),然后再使用它。