php实现导出为csv表格文件

本文介绍了一个使用PHP实现的CSV文件导出示例代码。该示例展示了如何创建CSV文件并将数组数据写入其中,同时提供了自定义表头的功能。通过调整内存限制和执行时间,确保了在大量数据导出时程序的稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class Index
{    
    public function index()
    {	
        return view('index'); 

    }
    public function do(){
        $a = array(
            'a' => 1,
            'b' => 2,
            'c' => 3,
            'd' => 4,
            'e' => 5,
        );
        $b=['订单号','名称','表头名1','表头名2','表头名3'];
        
         $c = array(
            '1' => $a,
            '2' => $a,
            '3' => $a,
            '4' => $a,
            '5' => $a,
        );

        $this->toCSV('用户订单明细表'.date('ymdhis').'.csv',$b,$c);
    }
    public function toCSV($filename, $tileArray=array(), $dataArray=array()){
        ini_set('memory_limit','512M');
        ini_set('max_execution_time',0); //限制程序执行时间 
     //   echo 'ini设置完成==>';
        ob_end_clean(); //清空(擦除)缓冲区并关闭输出缓冲
      //  echo '清空(擦除)缓冲区并关闭输出缓冲==》';
        ob_start();// 打开输出控制缓冲
    //    echo '打开输出控制缓冲成功==>';

        header("Content-Type: text/csv");//header()用于发送原始 HTTP 头
      //  echo 'header告诉要csv格式==》';
        header("Content-Disposition:filename=".$filename); //filename指令告诉浏览器,附件下载的形式展示数据。
     //   echo 'filename指令告诉浏览器,附件下载的形式展示数据。==》';
     //    echo '<br/>';
        $fp=fopen('php://output','w'); //php://output:一个只写的数据流,  fopen(,'w');将资源绑定到流中,w:写入方式打开文件
     //   var_dump($fp);
      //  echo '以写入方式打开一个只写的数据流 成功==>';
      //  echo '<br/>';
       

        fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));//转码 防止乱码(比如微信昵称(乱七八糟的))
    //    echo '将内容写到数据流中... 成功==》';
    //     echo '<br/>';
      //  $raw_post_data = file_get_contents('php://input', 'r'); 
      //  echo $raw_post_data . "\n";exit;

        fputcsv($fp,$tileArray);// 该函数将行格式数据 化为 CSV格式, 并写入一个打开的文件。
  //      echo '行格式数据 化为 CSV格式, 并写入一个打开的文件 成功';
     //   fputcsv($fp,$dataArray);       

        $index = 0;
        foreach ($dataArray as $item) {
            $index++;
            fputcsv($fp,$item);
        }
        ob_flush();
        flush();
        ob_end_clean();
    }
    
}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值