php導(dǎo)出csv數(shù)據(jù)在瀏覽器中輸出提供下載或保存到文件的示例
1.在瀏覽器輸出提供下載
/**
* 導(dǎo)出數(shù)據(jù)到CSV文件
* @param array $data 數(shù)據(jù)
* @param array $title_arr 標(biāo)題
* @param string $file_name CSV文件名
*/
function export_csv(&$data, $title_arr, $file_name = '') {
ini_set("max_execution_time", "3600");
$csv_data = '';
/** 標(biāo)題 */
$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 = '';
/** 標(biāo)題 */
$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) ;
}
調(diào)用示例(保存到文件):
$file_name="/var/www/tmp/test.csv" ;
$header = array(
'0' => '參數(shù)ID',
'1' => '參數(shù)名稱(chēng)',
'2' => '統(tǒng)計(jì)次數(shù)',
'3' => '統(tǒng)計(jì)次數(shù)百分比',
'4' => '唯一用戶數(shù)',
'5' => '唯一用戶數(shù)百分比',
'6' => '人均次數(shù)'
);
$csvList = array(array("111", "title", "12", "100%", "23", "50%", "4")) ;
export_csv($csvList, $header, $file_name) ;
- thinkPHP導(dǎo)出csv文件及用表格輸出excel的方法
- 基于php導(dǎo)出到Excel或CSV的詳解(附utf8、gbk 編碼轉(zhuǎn)換)
- PHP導(dǎo)出MySQL數(shù)據(jù)到Excel文件(fputcsv)
- 詳解PHP導(dǎo)入導(dǎo)出CSV文件
- php導(dǎo)出csv格式數(shù)據(jù)并將數(shù)字轉(zhuǎn)換成文本的思路以及代碼分享
- PHP 導(dǎo)出數(shù)據(jù)到淘寶助手CSV的方法分享
- PHP實(shí)現(xiàn)CSV文件的導(dǎo)入和導(dǎo)出類(lèi)
- PHP 實(shí)現(xiàn)從數(shù)據(jù)庫(kù)導(dǎo)出到.csv文件方法
- php使用指定編碼導(dǎo)出mysql數(shù)據(jù)到csv文件的方法
- php導(dǎo)出CSV抽象類(lèi)實(shí)例
- 原生PHP實(shí)現(xiàn)導(dǎo)出csv格式Excel文件的方法示例【附源碼下載】
相關(guān)文章
Yii2框架實(shí)現(xiàn)登錄、退出及自動(dòng)登錄功能的方法詳解
這篇文章主要介紹了Yii2框架實(shí)現(xiàn)登錄、退出及自動(dòng)登錄功能的方法,結(jié)合實(shí)例形式詳細(xì)分析了Yii2框架實(shí)現(xiàn)登錄、退出及自動(dòng)登錄功能的原理、實(shí)現(xiàn)方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-10-10php將數(shù)據(jù)庫(kù)中的電話號(hào)碼讀取出來(lái)并生成圖片
本PHP程序作用是從數(shù)據(jù)庫(kù)中讀取出手機(jī)號(hào)碼或其他數(shù)據(jù)并生成圖片,起到干擾采集防采集的作用。(英文或數(shù)字,如果要支持中文的話需要額外添加字庫(kù))。本代碼為原創(chuàng)代碼。2008-08-08tp5(thinkPHP5框架)captcha驗(yàn)證碼配置及驗(yàn)證操作示例
這篇文章主要介紹了tp5(thinkPHP5框架)captcha驗(yàn)證碼配置及驗(yàn)證操作,結(jié)合實(shí)例形式分析了基于thinkPHP5框架的captcha驗(yàn)證碼配置及驗(yàn)證操作具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-05-05實(shí)例講解PHP設(shè)計(jì)模式編程中的簡(jiǎn)單工廠模式
這篇文章主要介紹了PHP設(shè)計(jì)模式編程中的簡(jiǎn)單工廠模式,舉了一個(gè)水果銷(xiāo)售和一個(gè)計(jì)算器設(shè)計(jì)的例子,需要的朋友可以參考下2016-02-02php 分頁(yè)函數(shù)multi() discuz
discuz摘出來(lái)的php分頁(yè)函數(shù)multi(),大家以后也可以從discuz來(lái)獲取各種比較好的函數(shù)了,學(xué)習(xí)要注意借鑒。2009-06-06PHP+jQuery+Ajax實(shí)現(xiàn)分頁(yè)效果 jPaginate插件的應(yīng)用
這篇文章主要介紹了PHP+jQuery+Ajax實(shí)現(xiàn)分頁(yè)效果,以及jPaginate插件的應(yīng)用2015-10-10關(guān)于laravel 子查詢(xún) & join的使用
今天小編就為大家分享一篇關(guān)于laravel 子查詢(xún) & join的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10