千家信息网

PHP怎么实现在下载文件时自动添加bom头

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,本篇内容主要讲解"PHP怎么实现在下载文件时自动添加bom头",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PHP怎么实现在下载文件时自动添加bom头"吧!
千家信息网最后更新 2024年11月18日PHP怎么实现在下载文件时自动添加bom头

本篇内容主要讲解"PHP怎么实现在下载文件时自动添加bom头",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PHP怎么实现在下载文件时自动添加bom头"吧!

首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark)。
不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见)。这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是UTF-8编码的。

如果你的接口是UTF-8的,你需要强制下载一个文件,比如csv.excel在默认情况(中文背景)下,认为csv是GB编码的,所以如果米有bom头,那你给用户呈现的文件,可能就是乱码了。

怎么加bom头呢?
在输出文件之前加上bom头就可以了:

复制代码 代码如下:


// 文件名
$filename = "www.jb51.net.net.csv";

header('Expires: ' . gmdate('D, d M Y H:i:s', $_SERVER['REQUEST_TIME'] + 10) . ' GMT');
header('Cache-Control: max-age=10');
//header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Type: text/csv; charset=utf-8');
header("Content-Disposition: attachment; filename={$filename}");

// 如果结果中有提示信息,则把第一行输出改为提示信息文字
$out = "xEFxBBxBF";// 加上bom头,系统自动默认为UTF-8编码
if (!empty($extra['notice'])) {
$out .= "{$extra['notice']}rn";
}

// 输出
foreach ($table as $row) {
$out .= implode(",", $row) . "rn";
}

/* if (mb_detect_encoding()($out) == 'UTF-8') {
$out = iconv("UTF-8//IGNORE", "GBK", $out);
} */
echo $out;

到此,相信大家对"PHP怎么实现在下载文件时自动添加bom头"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

文件 UTF-8 编码 输出 代码 信息 内容 字符 就是 系统 记事本 学习 提示 实用 更深 约定俗成 一行 东西 乱码 二进制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库运行机制包括哪些内容 高级数据库设计题 金融分析用哪个软件开发 电子信息工程与网络安全 小米软件开发工资一般多少 薄荷dns服务器 防火墙与网络安全 win10注册数据库闪退 如何远程到服务器 计算机应用 网络技术方向 浙江微型软件开发销售价格 辽宁专升本数据库原理及应用 网络安全大讲堂读后感350字 软件工程自考计算机网络技术 网络技术员学习 怎么知道有无使用代理服务器 市教育局网络安全进校园 网络安全宣传周自查报告 提高网络安全素养讨论发言 苹果顶配工作站服务器 高端软件开发要用游戏本吗 网络安全各协议使用的密钥机制 警方紧急提醒网络安全 网络安全工资一般多少钱一个月 数据库1062错误代码 河东软件开发教学哪家好 党员干部增强网络安全 电工与网络技术哪个容易学 万能法快照网络安全 网络安全班会活动计划
0