PHP中file_exists()函数不支持中文文件名解决办法
PHP中通常使用file_exists()判断某个文件或者文件夹是否存在,如果文件或文件夹存在则返回true,否则返回false。今天写程序时发现,在网页使用UTF8编码的情况下,该函数对于中文文件名或者文件夹名不能返回正确值,始终返回false。猜测可能是编码不同导致PHP不能正确判断。下面是不能够返回正确值的代码,无论文件是否在都返回不在:
1 <?php;
2 $file="/attachment/21/0/材料.rar";
3 $newfile = dirname(__FILE__).$file;
4
5 echo file_exists($newfile);
6 ?>
增加了一句将UTF8编码转换为GB2312编码的语句,改进后可以了正确判断了:
1 <?php
2 $file="/attachment/21/0/材料.rar";
3 $newfile = dirname(__FILE__).$file;
4
5 $file=iconv('UTF-8','GB2312',$file);
6
7 echo file_exists($newfile);
8 ?>
页:
[1]