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