Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php fgetcsv循环后没有发生任何事件。试图从amazon mws api的选项卡分隔报告中保存数据_Php_Fgetcsv_Fileparsing - Fatal编程技术网

Php fgetcsv循环后没有发生任何事件。试图从amazon mws api的选项卡分隔报告中保存数据

Php fgetcsv循环后没有发生任何事件。试图从amazon mws api的选项卡分隔报告中保存数据,php,fgetcsv,fileparsing,Php,Fgetcsv,Fileparsing,如果我回显$count它工作正常(显示正确的计数),即使我转储键(注释行),它也会按预期回显,但循环结束后不会发生任何事情。大约9154排 下面的这些行不起作用,脚本执行停止,没有任何明显的错误 while ($keys = fgetcsv($fp, 0, "\t")) { if ($c == 0) { $headers = $keys; } else { $rows[] = $keys;

如果我回显
$count
它工作正常(显示正确的计数),即使我转储键(注释行),它也会按预期回显,但循环结束后不会发生任何事情。大约9154排

下面的这些行不起作用,脚本执行停止,没有任何明显的错误

while ($keys = fgetcsv($fp, 0, "\t")) {

        if ($c == 0) {
            $headers = $keys;

        } else {
            $rows[] = $keys;
            //var_dump($keys);
        }

         $c ++;
    }

fclose($fp);
echo count($rows);

在PHP手册中尝试:

fclose($fp);
echo count($rows);

另外,请确保您的输入csv有一个干净的文件结尾。

尝试PHP手册中的方法:

fclose($fp);
echo count($rows);

此外,请确保您的输入csv有一个干净的文件结尾。

尝试此操作并告诉我们发生了什么:

while( ( $keys = fgetcsv( $fp, 0, "\t" ) ) !== FALSE ) {

试试这个,告诉我们发生了什么:

while( ( $keys = fgetcsv( $fp, 0, "\t" ) ) !== FALSE ) {

\t
$data=stream\u get\u contents($request->getReport())周围需要双引号;我认为它和eof问题,尝试了第三方解析器类,具有相同的行为,所以我假设它是eof问题。添加eof的最佳方式是什么!==FALSE成功了,我在不知道自己的选择的情况下战斗!thanks@RashidShafique没问题,变量将布尔值(true/false)存储为0或1,因此请确保在声明/分配变量的条件中使用严格的比较。在
\t
$data=stream\u get\u contents($request->getReport())周围需要双引号;我认为它和eof问题,尝试了第三方解析器类,具有相同的行为,所以我假设它是eof问题。添加eof的最佳方式是什么!==FALSE成功了,我在不知道自己的选择的情况下战斗!thanks@RashidShafique没问题,变量将布尔值(true/false)存储为0或1,因此请确保在声明/分配变量的条件中使用严格的比较。我尝试过这种方法,但它不会在fgetcsv循环之外执行,因为msw api以流式方式返回数据,它被捕获在$data var中,我使用$fp=fopen('php://memory","r+";;fwrite($fp,$x);倒带($fp);很公平。一种技术含量很低的方法是将CSV内容复制并粘贴到一个新文件中,减去最后一个可见字符。然后重新键入该字符并保存…我尝试过了,但它在fgetcsv循环之外没有执行,考虑到它的eof问题,因为msw api以流式方式返回数据,它在$data var中捕获,我使用$fp=fopen('s)将其写入文件php://memory","r+";;fwrite($fp,$x);倒带($fp);很公平。一种技术含量很低的方法是将CSV内容复制并粘贴到一个新文件中,减去最后一个可见字符。然后重新键入该字符并保存。。。