Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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 读取codeigniter 3中的CSV数据只需给出一个空数组_Php_Codeigniter_Csv - Fatal编程技术网

Php 读取codeigniter 3中的CSV数据只需给出一个空数组

Php 读取codeigniter 3中的CSV数据只需给出一个空数组,php,codeigniter,csv,Php,Codeigniter,Csv,我正在使用CI3开发我的应用程序。我的情况是,有一个文件的csv扩展名如下: NO,EIR IN,CONT,TYPE,INDEPO,JAM,KODE VSL,VESSEL,VOY,CONSIG,COND IN,CLEAN,TARE,GROSS,KAPASITAS,EX CARGO,LAST AIR),LAST HIDRO,MANU,BUILDER,OWNER 1,1545053 ,EOLU 1111111,XXXX,21-11-2015,13:00,ABO,ALBERT OLDEND

我正在使用CI3开发我的应用程序。我的情况是,有一个文件的csv扩展名如下:

 NO,EIR IN,CONT,TYPE,INDEPO,JAM,KODE VSL,VESSEL,VOY,CONSIG,COND IN,CLEAN,TARE,GROSS,KAPASITAS,EX CARGO,LAST AIR),LAST HIDRO,MANU,BUILDER,OWNER

  1,1545053   ,EOLU 1111111,XXXX,21-11-2015,13:00,ABO,ALBERT OLDENDORFF   ,N001   ,ASTABUMI CIPTA      ,DMG,DIRTY,  2400, 20000,  5000,FOOD                ,  -  -    ,  -  -    ,10-11  ,                    

  2,1545052   ,EOLU 1234567,IM04,21-11-2015,10:00,202,WAN HAI 202         ,N 001  ,ANUGERAH AGUNG LUMIN,AVL,DIRTY,  2400, 20000,  1000,MAKANAN             ,  -  -    ,  -  -    ,11-13  ,                    ,APL                 
$this->load->library('csvreader');

    $data = array('halaman' => 'Data Container',
        'csvData' => $this->csvreader->parse_file(base_url('assets/csv/ZIL.csv')));

    $main_view = $this->load->view('surveyor/v_container', $data, TRUE);
    echo $main_view;
我一直在努力阅读它。我的控制器是这样的:

 NO,EIR IN,CONT,TYPE,INDEPO,JAM,KODE VSL,VESSEL,VOY,CONSIG,COND IN,CLEAN,TARE,GROSS,KAPASITAS,EX CARGO,LAST AIR),LAST HIDRO,MANU,BUILDER,OWNER

  1,1545053   ,EOLU 1111111,XXXX,21-11-2015,13:00,ABO,ALBERT OLDENDORFF   ,N001   ,ASTABUMI CIPTA      ,DMG,DIRTY,  2400, 20000,  5000,FOOD                ,  -  -    ,  -  -    ,10-11  ,                    

  2,1545052   ,EOLU 1234567,IM04,21-11-2015,10:00,202,WAN HAI 202         ,N 001  ,ANUGERAH AGUNG LUMIN,AVL,DIRTY,  2400, 20000,  1000,MAKANAN             ,  -  -    ,  -  -    ,11-13  ,                    ,APL                 
$this->load->library('csvreader');

    $data = array('halaman' => 'Data Container',
        'csvData' => $this->csvreader->parse_file(base_url('assets/csv/ZIL.csv')));

    $main_view = $this->load->view('surveyor/v_container', $data, TRUE);
    echo $main_view;
这是图书馆:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

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 = 4096;    /** 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]);

    $content    =   array();
    $keys   =   $this->escape_string($keys_values);

    $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;
   }   
  }
 ?> 


但是,当我在视图中调试它时:
print\r($csvData)
,它只会给我这样的空数组:
array()
,基于库,任何它非常感谢的帮助。

要获取csv文件数据,请尝试以下方法--

现在可以这样打印数组了--

echo”“;
打印(行);

请尝试此方法。

要获取csv文件数据,请尝试此方法--

现在可以这样打印数组了--

echo”“;
打印(行);

请尝试这种方式。

您的CSV数据没有您在库中指定的存储模块。@Ahmad,如何使其成为存储模块?任何解决方案,因为csv是由旧应用程序“CLIPPER”生成的,只需尝试将存储模块更改为空字符串(这应该可以在控制器中访问),例如:
$This->csvreader->enclosure=''@Ahmad,仍然不起作用。我已经在我的机器上测试了你的示例,它可以工作,所以你的代码中没有任何错误。除非您的CSV文件与您在本问题中发布的文件不一样。您的CSV数据没有您在库中指定的存储模块。@Ahmad,如何使其成为存储模块?任何解决方案,因为csv是由旧应用程序“CLIPPER”生成的,只需尝试将存储模块更改为空字符串(这应该可以在控制器中访问),例如:
$This->csvreader->enclosure=''@Ahmad,仍然不起作用。我已经在我的机器上测试了你的示例,它可以工作,所以你的代码中没有任何错误。除非您的CSV文件与您在本问题中发布的文件不一样。