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

2015-01-24信息快讯网

这篇文章主要介绍了php导出csv数据在浏览器中输出提供下载或保存到文件的示例,需要的朋友可以参考下

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+FFMPEG实现将视频自动转码成H264标准Mp4文件
php实现的zip文件内容比较类
php导出CSV抽象类实例
php实现的支持断点续传的文件下载类
PHP遍历文件夹与文件类及处理类用法实例
php的XML文件解释类应用实例
php实现的返回数据格式化类实例
php操作csv文件代码实例汇总
Laravel框架数据库CURD操作、连贯操作总结
PHP开发框架Laravel数据库操作方法总结
PHP实现更新中间关联表数据的两种方法
php防止伪造数据从地址栏URL提交的方法
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
兼容ie6浏览器的php下载文件代码分享
destoon在360浏览器下出现用户被强行注销的解决方法
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
php导出csv格式数据并将数字转换成文本的思路以及代码分享
php强制文件下载而非在浏览器打开的自定义函数分享
php过滤html中的其他网站链接的方法(域名白名单功能)
smarty模板中使用get、post、request、cookies、session变量的方法
PHP获取浏览器信息类和客户端地理位置的2个方法
Windows下的PHP安装文件线程安全和非线程安全的区别
自己写了一个php检测文件编码的函数
PHP数据库操作之基于Mysqli的数据库操作类库
利用php下载xls文件(自己动手写的)
php文件服务实现虚拟挂载其他目录示例
通过dbi使用perl连接mysql数据库的方法
PHP批量删除、清除UTF-8文件BOM头的代码实例
php使用curl和正则表达式抓取网页数据示例
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
PHP按行读取、处理较大CSV文件的代码实例
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
php导入csv文件碰到乱码问题的解决方法
php中文乱码怎么办如何让浏览器自动识别utf-8
PHP限制页面只能在微信自带浏览器访问的代码
利用浏览器的Javascript控制台调试PHP程序
php读取csv实现csv文件下载功能
使用php检测用户当前使用的浏览器是否为IE浏览器
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
©2014-2024 dbsqp.com