所以,对于某些文件,这个程序刚刚破解是很奇怪的。我输入了500行的文件,它工作正常,但如果我尝试输入1000行或更多,程序只获取csv文件的第一行(标题所在的位置)并打破整个while循环。
我注意到还有另外一些看似相似的问题;然而,当我读完它时,我意识到他们并没有将fgetcsv()调用到循环中。相反,我在while循环中调用该函数。
我的代码如下所示:
if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)){
$goe = fopen($target_file, "r");
while($data = fgetcsv($goe, filesize($target_file))){
if(!empty($data[0]) && !empty($data[2])){
if($data[0] !='brand' && $data[2] !='MPN'){
$string = $data[0] .' '. $data[2];
$arrayOfSearches[$data[1]] = $string;
}
}
}
fclose($target_file);
}
调试后我意识到它在while循环中输入一次,它进入第一个if条件,但是当它到达第二个时它永远不会进入(有意义,因为第一行是我不喜欢的标题)。我想)。
有什么想法吗?
答案 0 :(得分:0)
我最近遇到了同样的问题,在读取 cvs 文件时,该进程将所有行都返回一行,但幸运的是我找到了解决方案,只需将此行添加到您的 PHP 文件中即可:
ini_set('auto_detect_line_endings', true);
希望对你有用。