0

我使用 php 从我的站点导出 csv 文件,只能得到大约 8k 代码。但是当我使用相同的 php 脚本从本地测试站点导出 csv 时,我可以获得完整的代码,大约 500k。我确信站点中的数据库与我本地的 pc 测试数据库相同。

在此处输入图像描述

function export(){
        ini_set ('memory_limit', '32M');
        $this->db->execute('set names utf8');
        $result=$this->db->execute($this->query_sql);
        $csv_code='';
        $keys_line='';
        if($result->recordCount()>0){
            while(!$result->EOF){
                $v=$result->fields;


                // 标题行
                if($keys_line==''){
                    foreach($v as $k1=>$v1){
                        $keys_arr[]=$k1;
                    }
                    $keys_line=implode(',',$keys_arr);
                    $csv_code.=$keys_line;
                }

                // 内容行
                $values_arr=array();
                foreach($v as $k1=>$v1){
                    $str=preg_replace("@\s+@"," ",$v1); //替换换行
                    $str=preg_replace("@\"@","\"\"",$v1); //scv中需要将单个双引号转换成2个双引号
                    $str='"'.$str.'"';  // 用双引号括起来每个值
                    $values_arr[]=$str;
                }
                $values_line=implode(',',$values_arr);
                $csv_code.="\n".$values_line;
                $result->MoveNext();
            }
        }

        $filename = $this->csv_name.".csv";//文件名
        header("Content-type:text/csv");
        header("Content-Disposition:attachment;filename=".$filename);
        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
        header('Expires:0');
        header('Pragma:public');
        $csv_code=iconv('UTF-8','GB2312//IGNORE',$csv_code);    //转码成gbk
        $csv_code=trim($csv_code);
        echo $csv_code;
        exit;

    }

如果我删除这些代码,我可以在页面中获取所有数据代码,为什么?

// $filename = $this->csv_name.".csv";//文件名
// header("Content-type:text/csv");
// header("Content-Disposition:attachment;filename=".$filename);
// header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
// header('Expires:0');
// header('Pragma:public');
// $csv_code=iconv('UTF-8','GB2312//IGNORE',$csv_code); //转码成gbk
// $csv_code=trim($csv_code);
4

0 回答 0