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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM