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 ?>

 

posted @ 2012-05-11 14:12  [九狐科技]keheng  阅读(4979)  评论(1编辑  收藏  举报