用于Codeigniter的Csvreader库不返回所有假定的数据结果


Csvreader library for Codeigniter not returning all the supposed result of data

我正在使用我刚刚复制的Csvreader。起初,对于少于10000行的记录,它工作得很好,但超过10000行的记录,似乎返回的数据少于应该返回的数据。请帮忙,因为数据很重要。下面是代码。

请帮我解决这个代码的问题。

class Csvreader {
var $fields;            /** columns names retrieved after parsing */ 
var $separator = ';';    /** separator used to explode each line */
var $enclosure = '"';    /** enclosure used to decorate each field */
var $max_row_size = 20000;    /** maximum row size to be used for decoding */
function parse_file($p_Filepath) {
    $file = fopen($p_Filepath, 'r');
    $this->fields = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure);
    $keys_values = explode(',',$this->fields[0]);
    $data_keys = array("column 1", "column 2", "column 3"); /// just improvised
    $content    =   array();
    $keys   =   $data_keys;
    $i  =   1;
    while( ($row = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure)) != false ) {            
        if( $row != null ) { // skip empty lines
            $values =   explode(',',$row[0]);
            if(count($keys) == count($values)){
                $arr    =   array();
                $new_values =   array();
                $new_values =   $this->escape_string($values);
                for($j=0;$j<count($keys);$j++){
                    if($keys[$j] != ""){
                        $arr[$keys[$j]] =   $new_values[$j];
                    }
                }
                $content[$i]=   $arr;
                $i++;
            }
        }
    }
    fclose($file);
    return $content;
    }
}
function escape_string($data){
    $result =   array();
    foreach($data as $row){
        $result[]   =   str_replace('"', '',$row);
    }
    return $result;
}   
}

谢谢你:-)

我也面临同样的问题,我找到了改变分隔符

的值的解决方案
var $separator = ';'; 

to be

var $separator = '.'; 

但是我必须提到,它不同于CSV文件,因为在我的系统中,我必须上传两个CSV文件,一个是图书馆图书的用户使用,另一个是来自google表单的调查结果。
第一个文件我将分隔符设置为";",它工作得很好,而第二个文件在创建的数组中不包括所有文件记录,直到我将分隔符更改为"。"。"