PHP中file_exists()判断中文文件名无效的解决方法

yipeiwu_com5年前PHP代码库

本文实例讲述了PHP中file_exists()判断中文文件名无效的解决方法。分享给大家供大家参考。具体方法如下:

php中判断文件是否存在我们会使用file_exists函数或is_file函数,但在使用file_exists时如果你文件名或路径是中文在uft8编码文档时是无效。本文就来解决此问题,下面我们一起来看看。

定义和用法:
file_exists() 函数检查文件或目录是否存在。
如果指定的文件或目录存在则返回 true,否则返回 false。
例子1

复制代码 代码如下:
<?php
echo file_exists("test.txt");
?>

输出:
1
例子2
复制代码 代码如下:
$realname='中文.txt';

if(file_exists($realname)) {
   // 永远都进不了这里
}
else
{
  echo 'www.jb51.net 提醒你文件不存在了';
}


输出结果是 www.jb51.net 提醒你文件不存在了
但我很惊讶呀文件是存在了,并且路径也没有问题php文件与中文.txt在同一目录所以这样写是没有问题,于时想想会不会是中文问题,我对编码进行转换

解决方案:

复制代码 代码如下:
$realname='中文.txt';
if(file_exists(iconv('UTF-8','GB2312',$realname))) {
   // 这样就可以支持了
}

结果显示1 ,问题解决了
此外还需要提醒大家,在php中最好不要使用中文名字,像apache,linux,php这些对中文支持不怎么好,所以大家尽量使用英文。

希望本文所述对大家的PHP程序设计有所帮助。

相关文章

PHP获取路径和目录的方法总结【必看篇】

PHP获取路径和目录的方法总结【必看篇】

PHP获取目录和的方法通过魔术变量;通过超级全局变量;通过相关函数等等: <?php /** * PHP获取路径或目录实现 */ //魔术变量,获取当前文件...

PHP下几种删除目录的方法总结

呵呵,忽然一个朋友问我如何删除目录,比如下面有文件呢,我说用递规呀,他说太慢了。于是就总结出了下面几种办法。 1。递规法: //我提供,好像有点不对,没测试 deleteDir...

深入解析php中的foreach问题

深入解析php中的foreach问题

前言:php4中引入了foreach结构,这是一种遍历数组的简单方式。相比传统的for循环,foreach能够更加便捷的获取键值对。在php5之前,foreach仅能用于数组;php5之...

php去除重复字的实现代码

方法一: 复制代码 代码如下: $text = '数组aabbccdd'; $text_filter = ''; $filter = array(); $len = mb_strlen(...

PHP使用preg_split和explode分割textarea存放内容的方法分析

本文实例讲述了PHP使用preg_split和explode分割textarea存放内容的方法。分享给大家供大家参考,具体如下: 今天有个紧急的bug,说是后台在配置了白名单后,在手机端...