php file_exists函数如何检测中文文件名?

发布时间:2020-08-09编辑:脚本学堂
有关php file_exists实现检测中文文件名的方法,php file_exists函数不支持中文名怎么办?可以参考下这里的解决方法。

php file_exists函数检测中文文件名

在php中检测文件是否存在,经常会遇到file_exists函数,但有个问题就是php file_exists函数不支持中文名,这里分享一个技巧,让file_exists函数支持中文名称的检测。

php中常使用file_exists()判断某个文件或者文件夹是否存在,如果存在则返回true,否则返回false。

该函数在网页使用UTF8编码的情况下,对于中文的文件名或者文件夹名不能返回正确值,始终返回false。

解决方法:
不支持中文名的原因,应该是编码不同而导致php不能正确判断。

例1,不能够返回正确值的代码,无论文件是否在都返回不在:
 

复制代码 代码示例:
<?php;
$file="/attachment/21/0/中文.rar";
$newfile = dirname(__FILE__).$file;
 
echo file_exists($newfile);
?>

例2,增加了一句将UTF8编码转换为GB2312编码的语句,即可正确判断中文名:
 

复制代码 代码示例:
<?php
$file="/attachment/21/0/中文.rar";
$newfile = dirname(__FILE__).$file;
 
$file=iconv('UTF-8','GB2312',$file);
 
echo file_exists($newfile);
?>