在读取URL时,CURL不会返回任何输出

时间:2015-10-26 17:55:37

标签: php curl

我正在阅读包含网址的CSV文件。我试图输出这些URL的结果,但面临奇怪的问题。 我似乎无法理解为什么当您尝试打印第一行的项目时,此代码无法打印变量$ output。

这是我的CSV文件,包含两条记录:

www.serverfault.com
www.stackoverflow.com

这是我的代码

<?php
$myfile = fopen("products.csv", "r") or die("Unable to open file!");

    while(!feof($myfile))
    {
        $myline = fgets($myfile);

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $myline);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);

        if($myline == "www.serverfault.com")
        {
            echo $output;
        }
    }
?>

请注意,在CSV文件中,第一条记录是www.serverfault.com,它从不打印$ output。如果我将此记录移至第二行,则会打印$ output但是它现在不会为www.stackoverflow.com打印$ output,现在就在第一行。

发生了什么?

1 个答案:

答案 0 :(得分:1)

你只是假设成功。 curl_exec在失败时返回布尔值false,打印为零长度字符串。

添加:

if($output === false) {
     die(curl_error($ch));

}

并且不要忘记检查字符串上的空格(例如换行符)。您的$myline实际上可能是www....com\n或类似。