file_exists中文名失败问题

来源:互联网 发布:淘宝收货时间最迟 编辑:程序博客网 时间:2024/06/11 09:15

今天修改下代码,想判断下文件是否存在,代码如下,其中$data['name']是我从数据库中读出的中文字符,比如一个人名,然后去查找路径下面是否含有该人的头像图片:

$headfile = './media/image/crew/'.$data['name'].'.jpg';

if (file_exists(headfile))

{

// do something

}

一直判断失败,开始以为是配置上面的安全模式导致,后来发现是编码问题,要将unicode编码转换为中文目录的gb2312才行,于是改成下面的形式:

$headfile = './media/image/crew/'.$data['name'].'.jpg';

$headfile = iconv('utf-8', 'gb2312', $headfile);

if (file_exists(headfile))

{

// do something

}

依然一直失败,纠结了很久,发现只需要转换文件名的编码就行了,路径不用转换,最后的版本:

$headfile = $data['name'].'.jpg';

$headfile = iconv('utf-8', 'gb2312', $headfile);

if (file_exists('./media/image/crew/'.headfile))

{

// do something

}

问题解决,应该是不含中文的路径就不用转换编码,只转换文件名就行了。

原创粉丝点击