Php 带有、fopen、feof和fgetcsv的警告

Php 带有、fopen、feof和fgetcsv的警告,php,csv,fopen,fgetcsv,feof,Php,Csv,Fopen,Fgetcsv,Feof,我有麻烦了,我无法理解为什么会发生这种错误 所以当我只运行这段代码时 function getClientProject($cliente) { $file = fopen("Projetos.csv","r"); $ArrayCount = 0; $bool = false; while(! feof($file)) { $data = fgetcsv($file); if($data[0] != '')

我有麻烦了,我无法理解为什么会发生这种错误

所以当我只运行这段代码时

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;
}
我不再工作了,我犯了这些错误

我做错了什么

路径,我使用的文件是“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

哪里是
Projetos.csv
?我指的是那条路。Ans脚本path.TSread.php(包含getClientProject的php文件)和Projetos.csv也位于相同的文件夹中。文件路径相对于主php文件,而不是包含
fopen
等的文件。请参阅
function getClientProject($cliente, $csv) {
    $file = fopen($csv, "r");
    // Followed by the rest of your function