PHP中file_exists函数不能检测包含中文的文件名的解决办法

企鹅博客
19040
文章
0
评论
2019年12月31日09:10:31 评论 18 views 365字阅读1分13秒

PHP中一般使用file_exists()判断某个文件或者文件夹是否存在,如果文件或文件夹存在则返回true,不存在则返回false。今天在实现文件下载功能时发现,在网页使用UTF8编码的情况下,该函数无法检测包含中文的文件是否存在,始终返回false。修改很久之后才发现是因为没有把完整路径进行编码的原因,仅仅对文件名进行转码是不够的。

下面的代码无法检测包含中文的文件是否存在,无论文件是否在都返回false:

 
 

仅仅对文件名进行转码也不行,这是我遇到的这种情况,需要把【路径+文件名】一起转码才可以

 

实际上,只要把文件路径与文件名字从UTF8编码转换为GB2312编码,改进后就可以准确判断了:

   

以上就介绍了PHP中file_exists函数不能检测包含中文的文件名的解决办法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 版权声明: 发表于 2019年12月31日09:10:31
  • 转载注明:https://www.qieseo.com/212474.html
如何跨站抓取别的站点的页面的补充 php教程

如何跨站抓取别的站点的页面的补充

在实际的应用中,经常会遇到一些特殊的情况,比如需要新闻,天气预报,等等,但是作为个人站点或者实力小的站点 我们不可能有那么多的人力 物力 财力去做这些事情,怎么办呢? 好在互联网是 资源共享的,我们可...
nginx反向代理--upstream模块 php教程

nginx反向代理–upstream模块

1.nginx负载均衡依赖于ngx_http_upstream_module模块,支持以下代理模式: proxy_pass:一般用于反向代理 fastcgi_pass:一般用于和动态文件交互,php等...
第一次写App接口的经验 php教程

第一次写App接口的经验

领导给了我一个任务,让我协同IOS和Android为平台手机版出一个app4.0的版本,在此之前没有接写过接口之类的,以至于拿到手有点蒙蒙的。 后来请教了前辈,慢慢的写了一点,基本上在一天内掌握了交接...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: