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);