php导出csv数据在浏览器中输出提供下载或保存到文件的示例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php导出csv数据在浏览器中输出提供下载或保存到文件的示例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2608字,纯文字阅读大概需要4分钟。
内容图文
![php导出csv数据在浏览器中输出提供下载或保存到文件的示例](/upload/InfoBanner/zyjiaocheng/282/e7c86f8853bb4e00be41edd434ad2261.jpg)
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) ;
内容总结
以上是互联网集市为您收集整理的php导出csv数据在浏览器中输出提供下载或保存到文件的示例全部内容,希望文章能够帮你解决php导出csv数据在浏览器中输出提供下载或保存到文件的示例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。