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

yipeiwu_com6年前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);
?>

相关文章

phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法

1、没有正确安装Mysql数据库,在系统服务中Mysql相关的服务没有启动 (请查看正确安装Mysql的方法) 2、在系统的 system32(C:\windows\system32)...

攻克CakePHP系列三 表单数据增删改

攻克CakePHP系列三 表单数据增删改

这里声明一点,上例中不小心把数据库表中lastupd字段错打成lastudp,本例子予以更正。 除上诉字段数据库与上例一致。 工程仍沿用上例,如下图: 代码依次为: database....

基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能

基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能

思路: 1.首先,页面前端,上传附件,提交给后台,并带一个随机性的参数(可以用时间戳); 2.后端接收附件,做一系列的逻辑处理,无误后,将对应的文件存储在上传的目录下; 3.然后前端,上...

使用php+apc实现上传进度条且在IE7下不显示的问题解决方法

使用php+apc实现上传进度条且在IE7下不显示的问题解决方法

今天整理以前写过的关于上传文件,并显示进度条的程序代码,对该代码进行优化整理。解决了一直困扰的问题:有时进度条没有达到100%,浏览器出现假死现象。在IE8、chrome测试非常完美。...

个人站长制做网页常用的php代码

复制代码 代码如下:<?php  $str = file("http://tq.tom.com/china/index.html");  $...