[PHP] 使用php生成下载csv文件
2023-02-18 15:36:29 时间
原理很简单,就是用php输出一个header头,可以直接让浏览器下载文件
单元格内容用英文逗号分隔, 其中为了防止乱码,汉字部分会进行一个转码操作,从utf8转为gbk
为了使单元格看起来直观一点,会增加个\t ,这样就不会看的时候出现#########
比如下面这个把moveusers数组作为csv文件下载
if(isset($_REQUEST['act'])&& $_REQUEST['act']=="downloadAll") { $outformat = "entmove.csv"; $title = "邮箱名,姓名,邮箱密码,搬家状态,开始时间,结束时间,邮件总数,收取数,失败数\n"; $data = ""; foreach ($moveUsers as $b) { $status = iconv("utf-8", "gbk//IGNORE", $b['status_text']); $realName = iconv("utf-8", "gbk//IGNORE", $b['realName']); $data .= "{$b['account']}\t,{$realName}\t,{$b['password']},{$status}\t,{$b['movetime']}\t" . ",{$b['endtime']}\t,{$b['totle']},{$b['successnum']},{$b['failnum']}\n"; } $title = iconv("utf-8", "gbk//IGNORE", $title); $data = $title . $data; header("Cache-control: private"); header("Pragma: public"); header('Content-type: application/x-csv'); if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 5')) { header("Content-Disposition: inline; filename=$outformat"); } else { header("Content-Disposition: attachment; filename=$outformat"); } echo $data; exit; }
相关文章
- Redis 详解
- Redis事务
- Redis持久化
- Redis集群搭建
- Tampermonkey for Mac(油猴Safari浏览器插件)中文版v 4.17.6162
- Redis分布式锁的10个坑
- 如何解决 Redis 数据倾斜、热点等问题
- 免费给自己的网站加 HTTPS
- iterm2 快捷键(转载)
- Too many authentication failures for xxxx_username
- peewee insert 数据时报错:'buffer' object has no attribute 'translate'
- virtualenv 虚拟环境报错:setuptools pip wheel failed with error code 1
- supervisor 安装、配置、常用命令
- _ssl.c:510: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
- [MySQL]支持 emoji(字符集问题)
- [MySQL]长连接和短链接(转载)
- 解决 InsecurePlatformWarning: A true SSLContext object is not available.
- Mac总是自动启动脚本
- Max retries exceeded with url
- brew tap homebrew-science fails