首页 > 技术文章 > PHP读取csv文件

whoamme 2013-12-09 13:48 原文

    /**
     * 读取csv文件数据
     * @param string $file_url
     * @param boolean $csv_header TRUE:存在表头  FALSE:不存在表头
     * @return array
     */
    protected function read_file($file_url = '', $csv_header = TRUE)
    {   
        if(!is_file($file_url))
        {
            return FALSE;
        }
        
        $format_data = array(); //最终返回的数据
        $fp = fopen($file_url, 'r');
        if($fp)
        {
            $i = 0;
            //在linux系统下,会出现乱码问题,加入以下一行代码,应该可以解决
            setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','zh_CN.gb18030'));
            while ($data = fgetcsv($fp)) 
            {
                $i++;               
                if(($i == 1) && $csv_header) continue; /* 第一行抬头不算*/    
                $field_data = array();
                for($j = 0; $j < count($data); $j++)
                {
                    $field_data[] = iconv('GBK','UTF-8',trim($data[$j]));//进行转码
                    //$field_data[] = $this->decode_utf8(trim($data[$j]));//进行转码
                }
                
                if(!empty($field_data) && is_array($field_data))
                {
                    $format_data[] = $field_data;
                }                    
            }
        }
        fclose($fp);
        return $format_data;
    }

 

推荐阅读