怎么解决php遍历文件乱码的问题

php遍历文件乱码的解决办法:首先创建一个PHP示例文件;然后把文件编码改成“GBK”;最后通过“read_all”方法遍历文件夹下所有文件即可。

怎么解决php遍历文件乱码的问题

推荐:《PHP视频教程》

最近面试深受打击,回到河南老家一年多生了个娃回来发现自己已经跟不上IT行业的发展脚步

面试过程中发现很多公司的笔试题里面都有这道题,也是工作中经常用到的功能。

这还不是a piece of cake么

立即学习“PHP免费学习笔记(深入)”;

<?php /** 遍历文件夹下所有文件** 作者:郭猛* 邮箱:martin.guo@qq.com**/function read_all ($dir){    if(!is_dir($dir)) return false;    $handle = opendir($dir);    if($handle){        while(($fl = readdir($handle)) !== false){            $temp = $dir.DIRECTORY_SEPARATOR.$fl;            //如果不加  $fl!='.' && $fl != '..'  则会造成把$dir的父级目录也读取出来            if(is_dir($temp) && $fl!='.' && $fl != '..'){                echo '目录:'.$temp.'
';                read_all($temp);            }else{                if($fl!='.' && $fl != '..'){                    echo '文件:'.$temp.'
';                }            }        }    }}read_all('D:wampwwwest');?>

登录后复制

信心满满打开浏览器

怎么解决php遍历文件乱码的问题 

我屮艸芔茻,什么鬼!

在windows环境下,文件编码是UTF8,当目录中有中文目录,会显示乱码!!

此时我的文件编码和浏览器显示编码都是utf-8,我就想到windows的目录名是GBK,那就用iconv转换一下编码格式好了,改动了一下代码,如下第17行:

<?php /** 遍历文件夹下所有文件** 作者:郭猛* 邮箱:martin.guo@qq.com**/function read_all ($dir){    if(!is_dir($dir)) return false;    $handle = opendir($dir);    if($handle){        while(($fl = readdir($handle)) !== false){            $temp = iconv('GBK','utf-8',$dir.DIRECTORY_SEPARATOR.$fl);//转换成utf-8格式            //如果不加  $fl!='.' && $fl != '..'  则会造成把$dir的父级目录也读取出来            if(is_dir($temp) && $fl!='.' && $fl != '..'){                echo '目录:'.$temp.'
';                read_all($temp);            }else{                if($fl!='.' && $fl != '..'){                    echo '文件:'.$temp.'
';                }            }        }    }}read_all('D:wampwwwest');?>

登录后复制

把第17行代码加了iconv,这次一定没问题了

怎么解决php遍历文件乱码的问题

“D:wampwwwestest_dir子目录” 被is_dir判断成文件了!下面的文件没有被读取出来!

 单独测试了一下


登录后复制

在utf8编码格式下真的不行,

怎么解决php遍历文件乱码的问题

把文件编码改成GBK就可以了

怎么解决php遍历文件乱码的问题

 最后不得已,只能把文件编码格式改成gbk,显示效果如下:但是在UTF8编码格式下还是没有找到好的解决方法,希望有处理过这个问题的朋友给出建议,么么哒!!

以上就是怎么解决php遍历文件乱码的问题的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2128083.html

(0)
上一篇 2025年2月24日 21:35:04
下一篇 2025年2月20日 19:25:10

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php邮件标题乱码怎么办

    php邮件标题乱码的解决办法:首先使用【base64_encode】函数对数据进行编码;然后在标题字符串前加编码类型为【=?UTF-8?B?】;最后将文件保存成相应的编码格式即可。 推荐:《PHP视频教程》 PHP发送邮件标题乱码的解决 遇…

    2025年2月24日
    200
  • php如何删除当前目录

    php删除当前目录的方法:首先扫描一个目录内的所有目录和文件并返回数组;然后通过“deleteDir($sonDir);”方法递归删除;最后使用“@rmdir($sonDir);”方法删除目录内的子目录和文件即可。 推荐:《PHP视频教程》…

    2025年2月24日
    200
  • php如何实现手机验证

    php实现手机验证的方法:首先要找到短信服务提供商,并接入短信服务;然后在网站信息提交页面请求发送信息;接着使服务器向短信服务提供商通信,并提交发送请求;最后通过运营商将信息发送到用户的手机中即可。 推荐:《PHP视频教程》 php实现手机…

    2025年2月24日
    200
  • 在Linux中安装PHP curl扩展

    linux安装php扩展curl的方法:首先进入PHP源码目录;然后调用phpize程序生成编译配置文件;接着调用configure生成Makefile文件;最后进行编译安装即可。 推荐:《PHP视频教程》 今天开发时遇到这样的一个问题,就…

    2025年2月24日
    200
  • php如何清除style样式

    php清除style的方法:1、使用“strip_tags”函数去掉HTML及PHP的标记;2、使用“htmlspecialchars”函数将特殊字元转成HTML格式;3、通过“ClearHtml”方法去除css style样式。 推荐:《…

    2025年2月24日
    200
  • php html转excel的实现方法

    php html转excel的实现方法:首先打开html文件;然后在html的header中加入语句为【header(“Content-Disposition: attachment;filename=filename.xls&…

    2025年2月24日
    200
  • 如何解决android php乱码问题

    android php乱码的解决办法:1、填写对应的格式,语句如“result= EntityUtils.toString(httpResponse.getEntity()),HTTP.UTF_8);”;2、使用“流”的形式来解决。 推荐:…

    2025年2月24日
    200
  • 如何通过yum安装指定版本的PHP

    yum安装指定版本php的方法:首先执行命令“yum -y install epel-release”;然后安装“yum-config-manager”实用程序;接着选择对应的PHP版本进行安装;最后执行install命令即可。 推荐:《P…

    2025年2月24日
    200
  • php时间如何去掉时分秒

    php时间去掉时分秒的实现方法:首先创建一个PHP示例文件;然后通过“date(‘Y-m-d’,strtotime(日期))”方法获取时间并去掉时分秒即可。 推荐:《PHP视频教程》 php时间去掉时分秒 登录后复制…

    2025年2月24日
    200
  • php gb2312转utf8函数是什么

    php gb2312转utf8函数是“mb_convert_encoding”,其函数语法是“mb_convert_encoding($output[‘wd’], ‘utf-8’, &#821…

    2025年2月24日
    200

发表回复

登录后才能评论