首页 >后端开发 >PHP问题 > 正文

php下载excel乱码怎么办

原创2020-08-27 11:05:0901146

php下载excel乱码的解决办法:1、在下载的过程中取消任何非文件信息的输出;2、将输出的excel格式和后缀名保存一致;3、用“ob_clean”方法清空缓冲区。

推荐:《PHP视频教程

编写代码,使用PHP下载一个我已经上传好的Excel时出现这个错误:

强行打开则出现乱码。

搜索了一下,有两个解释:

1、在下载的过程中不要 输出任何非文件信息,比如 echo log信息。 否则下载后的文件无法打开,提示格式错误或者文件被破坏。
2、 输出的excel格式一定要和后缀名保存一致,否则会提示格式错误或者文件被破坏。

于是我更改了点击下载的a标签的位置,检查了excel后缀名,都没有作用。

后来搜索到可能是BOM头的问题,因为打开乱码的文件,前面都会有“0xEF 0xBB 0xBF”三个字符。而PHP无法识别BOM头。

BOM头的解释:在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码。它平时是一串隐藏的字符,许多软件可以识别并忽略BOM头,而PHP则不能。

因此,可以将需要上传的文件用editplus、ultraedit或者WINHEX等软件去掉BOM头之后,再上传。已经下载下来的则去掉BOM头再打开。

另外,也可以在你的readfile、fread,即输出前加上一句代码:ob_clean() 来清空缓冲区。

以上就是php下载excel乱码怎么办的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:PHP excel
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    推荐视频教程
  • PHP开发免费公益直播课PHP开发免费公益直播课
  • PHP快速操控Excel之PhpSpreadsheetPHP快速操控Excel之PhpSpreadsheet
  • PHP字符串处理(玉女心经版)PHP字符串处理(玉女心经版)
  • PHP进阶篇-函数(玉女心经版)PHP进阶篇-函数(玉女心经版)
  • 视频教程分类