通过浏览器检查时可以运行我的php文件,但是在通过CLI运行时会抛出无限循环错误:
fgetcsv()期望参数1为资源,第30行(线上)给出布尔值
代码:
readCSV("feeds/data.csv");
function readCSV($csvFile) {
$count = 0; //for counting array objects
$storedQuotes = array();
$handle = fopen($csvFile, 'r');
//fgetcsv($file, 1000, ","); //remove first line
while (($line = fgetcsv($handle, 1000, ",")) !== FALSE) {
$quote = $line[2];
$author = $line[1];
//add element to $csv_arr with $quote and $author
$csv_arr[]=array(
"quote" => $quote,
"author" => $author
);
}
fclose($file);
}
如何让我的程序通过php cli运行?
答案 0 :(得分:3)
首先检查$handle
是否为资源(或为假)。例如:
$handle = fopen($csvFile, 'r');
if(false !=== $handle) {
// do while{} here
}
else {
echo "Could not open $csvFile for reading";
}
此外,在CLI中,您的文件路径也不同。所以你需要更明确。如果$csvFile
位于脚本的相对路径中,则最简单的方法是定义路径,例如:
__DIR__ . "feeds/data.csv"
答案 1 :(得分:0)
好像你的PHP代码找不到文件(因为fopen返回false)。
我认为你应该使用完整路径而不是亲戚,因为你在cmd中运行它。
您应该像以下一样设置路径:
readcsv(dirname(__FILE__).'/feeds/data.csv');
如果" feed"它应该有用。 directory与PHP文件位于同一目录中。