PHP中file_exists函数不支持中文名的解决方法

5年以前  |  阅读数:1043 次  |  编程语言:PHP 

一般来说PHP中常使用file_exists()判断某个文件或者文件夹是否存在,如果存在则返回true,否则返回false。但是该函数在网页使用UTF8编码的情况下,对于中文的文件名或者文件夹名不能返回正确值,始终返回false。经测试之后得出解决方法,分析造成这一情况的原因应该是编码不同而导致的PHP不能正确判断。

下面这段代码是不能够返回正确值的代码,无论文件是否在都返回不在:


    <?php;
    $file="/attachment/21/0/中文.rar";
    $newfile = dirname(__FILE__).$file;

    echo file_exists($newfile);
    ?>

经过测试之后,增加了一句将UTF8编码转换为GB2312编码的语句,就可以正确判断了:


    <?php
    $file="/attachment/21/0/中文.rar";
    $newfile = dirname(__FILE__).$file;

    $file=iconv('UTF-8','GB2312',$file);

    echo file_exists($newfile);
    ?>
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例