为什么我的php脚本不能在我的站点中导出完整的csv文件?
我使用php从我的站点导出csv文件,只能得到大约8k代码。 但是当我使用相同的php脚本从本地测试站点导出csv时,我可以得到完整的代码,大约500k。我确信网站中的数据库与我的本地pc测试数据库相同为什么我的php脚本不能在我的站点中导出完整的csv文件?,php,csv,Php,Csv,我使用php从我的站点导出csv文件,只能得到大约8k代码。 但是当我使用相同的php脚本从本地测试站点导出csv时,我可以得到完整的代码,大约500k。我确信网站中的数据库与我的本地pc测试数据库相同 function export(){ ini_set ('memory_limit', '32M'); $this->db->execute('set names utf8'); $result=$this->db->exe
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);
您还没有显示任何代码。但若它非常慢,你们可能会遇到一个。不是时间限制,而是快速尝试在标题中添加内容长度。不确定也许你达到了记忆极限。。。在遍历数据之前,尝试回显标题,并回显数据,而不是将其累积到数组中。您可能还需要定期调用flush。