我正在阅读包含网址的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,现在就在第一行。
发生了什么?
答案 0 :(得分:1)
你只是假设成功。 curl_exec在失败时返回布尔值false,打印为零长度字符串。
添加:
if($output === false) {
die(curl_error($ch));
}
并且不要忘记检查字符串上的空格(例如换行符)。您的$myline
实际上可能是www....com\n
或类似。