最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-02 18:28:21
文档

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

怎么解决php遍历文件乱码的问题:php遍历文件乱码的解决办法:首先创建一个PHP示例文件;然后把文件编码改成GBK;最后通过read_all方法遍历文件夹下所有文件即可。推荐:《PHP视频教程》最近面试深受打击,回到河南老家一年多生了个娃回来发现自己已经跟不上IT行业的发展脚步面试过程
推荐度:
导读怎么解决php遍历文件乱码的问题:php遍历文件乱码的解决办法:首先创建一个PHP示例文件;然后把文件编码改成GBK;最后通过read_all方法遍历文件夹下所有文件即可。推荐:《PHP视频教程》最近面试深受打击,回到河南老家一年多生了个娃回来发现自己已经跟不上IT行业的发展脚步面试过程

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

推荐:《PHP视频教程》

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

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

这还不是a piece of cake么

<?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.'<br>';
 read_all($temp);
 }else{
 if($fl!='.' && $fl != '..'){

 echo '文件:'.$temp.'<br>';
 }
 }
 }
 }
}

read_all('D:wampwww	est');

?>

信心满满打开浏览器

我屮艸芔茻,什么鬼!

在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.'<br>';
 read_all($temp);
 }else{
 if($fl!='.' && $fl != '..'){

 echo '文件:'.$temp.'<br>';
 }
 }
 }
 }
}

read_all('D:wampwww	est');

?>

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

"D:wampwww est est_dir子目录" 被is_dir判断成文件了!下面的文件没有被读取出来!

单独测试了一下

<?php

$dir='D:wampwww	est	est_dir子目录';
var_dump(is_dir($dir));

?>

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

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

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

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

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

怎么解决php遍历文件乱码的问题:php遍历文件乱码的解决办法:首先创建一个PHP示例文件;然后把文件编码改成GBK;最后通过read_all方法遍历文件夹下所有文件即可。推荐:《PHP视频教程》最近面试深受打击,回到河南老家一年多生了个娃回来发现自己已经跟不上IT行业的发展脚步面试过程
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top