源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

php导出csv数据在浏览器中输出提供下载或保存到文件的示例

  • 时间:2021-10-25 19:41 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php导出csv数据在浏览器中输出提供下载或保存到文件的示例
[b]1.在浏览器输出提供下载[/b]
[u]复制代码[/u] 代码如下:
/**  * 导出数据到CSV文件  * @param array $data  数据  * @param array $title_arr 标题  * @param string $file_name CSV文件名  */ function export_csv(&$data, $title_arr, $file_name = '') {     ini_set("max_execution_time", "3600");     $csv_data = '';     /** 标题 */     $nums = count($title_arr);     for ($i = 0; $i < $nums - 1; ++$i) {         $csv_data .= '"' . $title_arr[$i] . '",';     }     if ($nums > 0) {      $csv_data .= '"' . $title_arr[$nums - 1] . "\"\r\n";     }     foreach ($data as $k => $row) {         for ($i = 0; $i < $nums - 1; ++$i) {             $row[$i] = str_replace("\"", "\"\"", $row[$i]);             $csv_data .= '"' . $row[$i] . '",';         }         $csv_data .= '"' . $row[$nums - 1] . "\"\r\n";         unset($data[$k]);     }     $csv_data = mb_convert_encoding($csv_data, "cp936", "UTF-8");     $file_name = empty($file_name) ? date('Y-m-d-H-i-s', time()) : $file_name;     if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE")) { // 解决IE浏览器输出中文名乱码的bug      $file_name = urlencode($file_name);      $file_name = str_replace('+', '%20', $file_name);     }     $file_name = $file_name . '.csv';     header("Content-type:text/csv;");     header("Content-Disposition:attachment;filename=" . $file_name);     header('Cache-Control:must-revalidate,post-check=0,pre-check=0');     header('Expires:0');     header('Pragma:public');     echo $csv_data; }
[b]2.保存到文件[/b]
[u]复制代码[/u] 代码如下:
function export_csv($data, $title_arr, $file_name = '') {     $csv_data = '';     /** 标题 */     $nums = count($title_arr);     for ($i = 0; $i < $nums - 1; ++$i) {         $csv_data .= '"' . $title_arr[$i] . '",';     }     if ($nums > 0) {     $csv_data .= '"' . $title_arr[$nums - 1] . "\"\r\n";     }     foreach ($data as $k => $row) {         for ($i = 0; $i < $nums - 1; ++$i) {             $row[$i] = str_replace("\"", "\"\"", $row[$i]);             $csv_data .= '"' . $row[$i] . '",';         }         $csv_data .= '"' . $row[$nums - 1] . "\"\r\n";         unset($data[$k]);     }     $file_name = empty($file_name) ? date('Y-m-d-H-i-s', time()) : $file_name;     file_put_contents($file_name, $csv_data) ; }
[b]调用示例[/b](保存到文件):
[u]复制代码[/u] 代码如下:
$file_name="/var/www/tmp/test.csv" ; $header = array(                     '0' => '参数ID',                     '1' => '参数名称',                     '2' => '统计次数',                     '3' => '统计次数百分比',                     '4' => '唯一用户数',                     '5' => '唯一用户数百分比',                     '6' => '人均次数'             );             $csvList = array(array("111", "title", "12", "100%", "23", "50%", "4")) ;             export_csv($csvList, $header, $file_name) ;
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部