PHP中通常使用file_exists()判断某个文件或者文件夹是否存在,如果文件或文件夹存在则返回true,否则返回false。今天写程序时发现,在网页使用UTF8编码的情况下,该函数对于中文文件名或者文件夹名不能返回正确值,始终返回false。猜测可能是编码不同导致PHP不能正确判断。

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

1 <?php;
2 $file="/attachment/21/0/材料.rar";
3 $newfile = dirname(__FILE__).$file;
4
5 echo file_exists($newfile);
6 ?>

增加了一句将UTF8编码转换为GB2312编码的语句,改进后可以了正确判断了:

1 <?php
2 $file="/attachment/21/0/材料.rar";
3 $newfile = dirname(__FILE__).$file;
4
5 $file=iconv('UTF-8','GB2312',$file);
6
7 echo file_exists($newfile);
8 ?>

转载于:https://www.cnblogs.com/keheng/articles/2495983.html

PHP中file_exists()函数不支持中文文件名解决办法相关推荐

  1. Linux环境下Nginx不支持中文文件名解决办法

    当一个文件名称为中文时,或者下载一个的文件名称为中文时,会出现404. 解决办法:增加charset utf-8; nginx配置: server {listen 80;server_name www ...

  2. 关于《机器学习决策树导出图片、PDF支持中文》解决办法

    很久没有更新博客了,一直以为自己默默无闻,埋头苦干.实际上是一种懒惰! 2020年的春天,是一段难忘的记忆!在这段特殊的时光里,让我静心思考,潜心研究.每每遇到技术困惑,总能在CSDN找到解决办法,由 ...

  3. JqueryQrcode生成二维码不支持中文的解决办法

    JqueryQrcode.js有一个小小的缺点,就是默认不支持中文. 这跟js的机制有关系,jquery-qrcode这个库是采用 charCodeAt() 这个方式进行编码转换的, 而这个方法默认会 ...

  4. idea中Java连接MySQL后中文乱码解决办法

    运行连接好数据库后运行Java代码出现中文乱码的错误: 解决办法: 首先注意这些地方,是不是选择了utf8.如果只修改这里变成utf8之后,运行还是乱码,那么进入下一步. 其次,进入这个地方. 进去之 ...

  5. nvidia docker容器不支持中文的解决办法_用docker搭建深度学习实验环境

    tensorflow和pytorch官方都维护了不同版本的docker镜像.借助docker我们可以方便的搭建起深度学习实验环境. 但是想要在同一个容器内同时拥有tensorflow.pytorch. ...

  6. php basename() 绕过,【转】PHP里的basename函数不支持中文名的解决

    今天用到basename 函数获取文件名称时,发现如果是中文的文件名返回只有后缀的空文件名(如:.pdf) string basename ( string path [, string suffix ...

  7. 如何让Flex AIR压缩解压缩库airxzip也支持中文文件名

    最近忙个Flex AIR项目要用到压缩和解压缩打包网络传输功能,所以在网上发现了这个库airxzip,接口使用挺方便的,但是一开始就是不支持中文文件名,压缩后的文件名一直是用UTF-8的,后来从air ...

  8. 【Windows美化】:修改磁盘或U盘默认图标(常见方式与无需重启、可随时修改、支持中文文件名的独家方式)

    Windows美化--修改磁盘或U盘默认图标(常见方式与无需重启支持中文的独家方式) 文章目录 Windows美化--修改磁盘或U盘默认图标(常见方式与无需重启支持中文的独家方式) 一.适用场景 二. ...

  9. 让Windows下Git和TortoiseGit支持中文文件名/UTF-8

    因为msysgit和TortoiseGit已经官方支持UTF-8了,所以本文章内容仅供参考. Git是使用最广泛的分布式版本管理系统,功能强大,速度奇快. Git原本不支Windows,现在被广泛使用 ...

最新文章

  1. 放授权代码的php文件夹,自己的项目如果包含别人的开源代码,licence文件应放在哪里...
  2. SAP 修改物料价格那些事
  3. SSL-ZYC 溜冰
  4. Python 字符串 - Python零基础入门教程
  5. 如何编程实现iAMT无线功能的禁用和开启
  6. 博客“评论王”评选活动开始啦!
  7. wordpress中直接执行mysql查询语句的常用方法
  8. xilinx基础篇Ⅰ(7)ISE14.7开发基础流程 [CPLD章节]
  9. java正则表达 替换_java正则表达式替换
  10. 【记忆法】记忆法推荐书
  11. 美国高防服务器亿速云,亿速云香港高防裸金属服务器上线,更强悍的计算性能,更安全的DDoS攻击防护...
  12. C语言:输出大写的三角形字母表(进阶)
  13. 三国演义中的十大谎言 VS 程序员十大口头禅
  14. 基于pytorch的图像识别基础完整教程
  15. 什么是陀螺仪的dr算法_陀螺仪与加速传感器数据的融合算法解析
  16. linux之虚拟文件系统源码分析(详解)
  17. 读书笔记之:《新生 七年就是一辈子》李笑来
  18. CentOS 5.2下安装网卡驱动
  19. 电子支付行业大洗牌:央行发10张牌照
  20. vsco使用教程_VSCO Cam 使用方法技巧

热门文章

  1. 【JavaScript脚本】——T2事件操作
  2. 几种常见数据库连接池的使用比较
  3. MemSQL初体验 - (1)传说中速度最快的关系数据库软件
  4. vue2.0s中eventBus实现兄弟组件通信
  5. python-sdk-demo的打包
  6. Grafana+Prometheus系统监控之MySql
  7. 关于void main()的误区
  8. 【转】托管函数的挂钩(完美版)
  9. Linux线上环境部署zabbix,CentOS 7.3下Zabbix 4.0监控环境安装部署
  10. 微信公众号页面支付接口java,[Java教程]微信公众号支付(三):页面调用微信支付JS并完成支付...