PHP的file_exists函数不支持UTF-8编码下的中文文件目录路径

赵开锦 发布于 2010/11/25 16:39
阅读 1K+
收藏 0

写PHP函数的时候为了判断一个文件或目录是否存在的基本办法就是使用函数file_exists,以前一直使用此函数没有怎么过多考虑,今天写一个功能代码的时候突然发现在代码编码是UTF-8环境时,此函数不能正常的支持中文的路径或文件名。

即工程环境/代码文件编码是UTF-8时,file_exists('D:/test/中文啊.txt');或file_exists('D:/中文啊/test.txt');怎么判断都只会返回false值。

后来在网上查找资料才发现在UTF-8环境下判断时需要将中文专为GBK编码才行,及上面的代码要想正常工作必须更改成如下格式:file_exists(iconv('utf-8','gbk','D:/test/中文啊.txt'));及file_exists(iconv('utf-8','gbk','D:/中文啊/test.txt'));才行。

特发此文以记录。以后UTF-8环境下开发时先写个自定义函数,将file_exists功能包装下,防止在出现这个问题。

加载中
0
BossKiller
BossKiller

Windows下才有这个问题,Linux用UTF-8真是一马平川

返回顶部
顶部