从 CLI 调用时 fgetcsv 抛出错误
fgetcsv throwing error when calling from CLI
运行 我的 php 文件在通过浏览器检查时是否正常,但在通过 CLI 运行 时抛出无限循环错误:
fgetcsv() 期望参数 1 为资源,第 30 行(while 行)给出的布尔值
代码:
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 将我的程序安装到 运行?
首先检查 $handle
是否为资源(或为 false)。例如:
$handle = fopen($csvFile, 'r');
if(false !=== $handle) {
// do while{} here
}
else {
echo "Could not open $csvFile for reading";
}
此外,在 CLI 中,您的文件路径不同。所以你需要更明确。如果 $csvFile
位于脚本的相对路径中,最简单的方法是定义路径,例如:
__DIR__ . "feeds/data.csv"
您的 PHP 代码似乎没有找到文件(因为 fopen returns false)。
我认为你应该使用完整路径而不是相对路径,因为你在 cmd 中 运行 它。
你应该像下面这样设置你的路径:
readcsv(dirname(__FILE__).'/feeds/data.csv');
如果 "feeds" 目录与 PHP 文件位于同一目录中,它应该可以工作。
运行 我的 php 文件在通过浏览器检查时是否正常,但在通过 CLI 运行 时抛出无限循环错误:
fgetcsv() 期望参数 1 为资源,第 30 行(while 行)给出的布尔值
代码:
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 将我的程序安装到 运行?
首先检查 $handle
是否为资源(或为 false)。例如:
$handle = fopen($csvFile, 'r');
if(false !=== $handle) {
// do while{} here
}
else {
echo "Could not open $csvFile for reading";
}
此外,在 CLI 中,您的文件路径不同。所以你需要更明确。如果 $csvFile
位于脚本的相对路径中,最简单的方法是定义路径,例如:
__DIR__ . "feeds/data.csv"
您的 PHP 代码似乎没有找到文件(因为 fopen returns false)。
我认为你应该使用完整路径而不是相对路径,因为你在 cmd 中 运行 它。
你应该像下面这样设置你的路径:
readcsv(dirname(__FILE__).'/feeds/data.csv');
如果 "feeds" 目录与 PHP 文件位于同一目录中,它应该可以工作。