最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
解决file_get_contents遇到中文文件名无法打开问题
时间:2022-06-24 23:29:19 编辑:袖梨 来源:一聚教程网
今天遇到一个很棘手的问题,客户用ftp向服务器传了一个文件,但是却无法被程序识别.查看代码后,没有发现问题,最后重演流程发现,客户上传的文件是中文命名的.于是小做测试发现,file_get_contents函数尽然不支持中文文件名文件.
原有代码如下:
$filename='哈.txt';
echo file_get_contents('./'.$filename);
执行以后显示结果:
悲剧开始.
之后试了不少判断方法,显示怀疑是不是编码问题,文件编码,代码编码一遍遍的排查,可是都是很匹配的啊.
之后查了相关资料却没有找到,于是google了一下发现有人遇到这个问题,说是系统编码的问题,于是开始对文件名进行转码.
文件用的是utf-8编码,但是系统默认为gbk.所以先把文件名转换gbk然后再读取.
$filename='哈.txt';
$filename=iconv('utf-8','gb2312',$filename);
//echo file_get_contents(mb_convert_encoding('./哈.txt', 'gbk', 'utf-8')); (另一种方法)
echo file_get_contents('./'.$filename);
测试结果:
读取成功.
OK,大功告成.
相关文章
- 王者荣耀侦探能力大测试攻略 王者荣耀侦探能力大测试怎么过 11-22
- 无期迷途主线前瞻兑换码是什么 11-22
- 原神欧洛伦怎么培养 11-22
- 炉石传说网易云音乐联动怎么玩 11-22
- 永劫无间手游确幸转盘怎么样 11-22
- 无期迷途主线前瞻兑换码是什么 无期迷途主线前瞻直播兑换码介绍 11-22