php导出csv数据在浏览器中输出提供下载或保存到文件的示例
生活随笔
收集整理的這篇文章主要介紹了
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
來源:http://www.jb51.net/article/49313.htm
?
1.在瀏覽器輸出提供下載
/*** 導出數據到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; }
2.保存到文件
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) ; }
調用示例(保存到文件):
$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) ;
轉載于:https://www.cnblogs.com/cblx/p/5203543.html
總結
以上是生活随笔為你收集整理的php导出csv数据在浏览器中输出提供下载或保存到文件的示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果你恨一个程序员,忽悠他去做iOS开发
- 下一篇: php 文件压缩