使用 fopen、feof 和 fgetcsv 发出警告
Warning with, fopen, feof and fgetcsv
我有麻烦了,我不明白为什么会出现这个错误。
所以当我只运行这段代码时,
function getClientProject($cliente)
{
$file = fopen("Projetos.csv","r");
$ArrayCount = 0;
$bool = false;
while(! feof($file))
{
$data = fgetcsv($file);
if($data[0] != '')
{
if(substr_compare($data[0],$cliente, 0, 3) == 0)
{
if($ArrayCount > 0)
{
$total = count($OpenProject);
for($i=0;$i<$total;$i++)
{
if($OpenProject[$i] == $data[0])
$bool = true;
}
if($bool == false)
{
$OpenProject[$ArrayCount] = $data[0];
$ArrayCount++;
}
}else
{
$OpenProject[$ArrayCount] = $data[0];
$ArrayCount++;
}
}
}
}
fclose($file);
return $OpenProject;
}
它有效并且 returns 数组。但是当我这样调用函数时,
include_once 'CRM files/TSread.php';
$arrayC = getClientProject('SLA');
var_dump($arrayC);
不再有效并且出现这些错误,
我做错了什么?
路径,我使用的文件是"Projeto.php":
和我的 CRM 文件夹:
您正在使用相对路径打开文件。您假设 Projetos.csv
始终与 TSread.php
文件位于同一目录中。尽管在包含它时,您似乎位于更高的目录中(在 CRM 文件目录之外),因此 PHP 无法再找到您的 CSV 文件,因为它现在正尝试相对于上层目录打开它。
您可以将完整路径传递给您的 getClientProject
方法以避免这种情况。所以,你会得到类似的东西:
$arrayC = getClientProject('SLA', __DIR__ . '/CRM files/Projectos.csv');
显然,您需要稍微更改函数才能使用这个新的构造函数,因此它应该像这样:
function getClientProject($cliente, $csv) {
$file = fopen($csv, "r");
// Followed by the rest of your function
我有麻烦了,我不明白为什么会出现这个错误。
所以当我只运行这段代码时,
function getClientProject($cliente)
{
$file = fopen("Projetos.csv","r");
$ArrayCount = 0;
$bool = false;
while(! feof($file))
{
$data = fgetcsv($file);
if($data[0] != '')
{
if(substr_compare($data[0],$cliente, 0, 3) == 0)
{
if($ArrayCount > 0)
{
$total = count($OpenProject);
for($i=0;$i<$total;$i++)
{
if($OpenProject[$i] == $data[0])
$bool = true;
}
if($bool == false)
{
$OpenProject[$ArrayCount] = $data[0];
$ArrayCount++;
}
}else
{
$OpenProject[$ArrayCount] = $data[0];
$ArrayCount++;
}
}
}
}
fclose($file);
return $OpenProject;
}
它有效并且 returns 数组。但是当我这样调用函数时,
include_once 'CRM files/TSread.php';
$arrayC = getClientProject('SLA');
var_dump($arrayC);
不再有效并且出现这些错误,
我做错了什么?
路径,我使用的文件是"Projeto.php":
和我的 CRM 文件夹:
您正在使用相对路径打开文件。您假设 Projetos.csv
始终与 TSread.php
文件位于同一目录中。尽管在包含它时,您似乎位于更高的目录中(在 CRM 文件目录之外),因此 PHP 无法再找到您的 CSV 文件,因为它现在正尝试相对于上层目录打开它。
您可以将完整路径传递给您的 getClientProject
方法以避免这种情况。所以,你会得到类似的东西:
$arrayC = getClientProject('SLA', __DIR__ . '/CRM files/Projectos.csv');
显然,您需要稍微更改函数才能使用这个新的构造函数,因此它应该像这样:
function getClientProject($cliente, $csv) {
$file = fopen($csv, "r");
// Followed by the rest of your function