【发布时间】:2015-08-08 22:20:14
【问题描述】:
我只是在学习使用 PHP,因为我的工作提出了要求,我试图弄清楚为什么在我的 CSV 文件中的 124938 条记录中只有 1011 条记录被读取。这是我正在使用的非常基本的代码。
<?php
print "<table>\n";
$fp = fopen('STDPRICE_FULL.csv','r') or die("can't open file");
while($csv_line = fgetcsv($fp,1024)) {
print '<tr>';
for ($i = 0, $j = count($csv_line); $i < $j; $i++) {
print '<td>'.$csv_line[$i].'</td>';
}
print "</tr>\n";
}
print '</table>\n';
fclose($fp) or die("can't close file");
?>
当我打印 count($csv_line) 时,它只显示 1011 条记录。
现在我相信它可能与整数的大小有关,但我不确定。
另外,我搜索了增加整数大小的方法,但 PHP 似乎可以自己处理类型转换。
谁能建议我可以做些什么来读取 CSV 文件中的所有行?
【问题讨论】:
-
这可能是某种内存问题,因为这些记录很多。你的 php 内存限制和脚本执行时间是多少?
-
$j = count($csv_line);--- 这是什么?比如,你为什么认为它是许多行/记录? -
将
fgetcsv($fp,1024)更改为fgetcsv($fp)。通常,您不想设置第二个参数,除非您的文件中有常规的、预期的(最大)宽度行 -
我的 php.ini 文件有以下 max_input_vars = 6000 max_execution_time = 5000 memory_limit = 256M
-
好吧,“更简单”的做法是将最后一项输出与文件中的最后一项进行比较。它们匹配吗?
Photoshop Extended ALL IE ALL 300 000 plus Gold 2Y 24 Months PRO这是我在您的页面上最后关闭</td></tr></table>之前看到的最后一件事。这是你文件中的最后一件事吗?