中药方大全小图标
您当前的位置:首页 > 其他 > 网站日记

php遍历windows系统文件时汉字不显示的处理方法

提示: 阅读权限:公开  来源:jiuhecai  作者:中药方大全

直接上代码:

/获取一个目录下的文件列表
function list_dir($path, $type = 'array') {
	$flag = false;
	$lst = array('dir'=>array(), 'file'=>array());
	$base = $path;
	$tmp = scandir($base);
	foreach ( $tmp as $k=>$v ) {
		//过滤掉上级目录,本级目录和程序自身文件名
		$bm=mb_detect_encoding($v, array('ASCII','UTF-8','GB2312','GBK','BIG5'));
		if($bm=='EUC-CN')$v=iconv('GB2312', 'UTF-8', $v);
		if ( !in_array($v, array('.', '..')) ) {
			$file = $full_path = hpath($base.DIRECTORY_SEPARATOR.$v,1);
			if ( $full_path == __FILE__ ) {
				// continue; //屏蔽自身文件不在列表出现
			}
			// $file = str_replace(dirname(__FILE__), '', $file);
			$file = qpath($file); 
			if ( is_dir($full_path) ) {
				if ( 'html' === $type ) {
					$v = '<li class="dir" path="'.$file
					.'" onclick="load();"><span>'.$v.'</span></li>';
				}
				array_push($lst['dir'], $v);
			} else {
				if ( 'html' === $type ) {
					$v = '<li class="file" path="'.$file
					.'" onclick="load()"><span>'.$v.'</span></li>';
				}
				array_push($lst['file'], $v);
			}
		}
	}
	$lst = array_merge($lst['dir'], $lst['file']);
	$lst = array_filter($lst);
	$flag = $lst;
	if ( 'html' === $type ) {
		$flag = '<ul>'. implode('', $lst) .'</ul>';
	}
	return $flag;
}

关键点就是:


$bm=mb_detect_encoding($v, array('ASCII','UTF-8','GB2312','GBK','BIG5'));
		if($bm=='EUC-CN')$v=iconv('GB2312', 'UTF-8', $v);


这样就能显示汉字了。

tags: php 遍历 windows系统
返回顶部
推荐资讯
视频:田纪钧讲关节不痛的秘密、膝关节拉筋法
视频:田纪钧讲关节不
白露到了,你还好吗?
白露到了,你还好吗?
尿疗与断食
尿疗与断食
给风疹反复发作女孩的药方(组图)
给风疹反复发作女孩的
相关文章
栏目更新
栏目热门
  1. 帝国cms全站搜索的分页格式如何修改-流程
  2. libreoffice7的命令大全
  3. 帝国cms插件之标题生成标题图片
  4. 帝国cms插件安装模板
  5. useragent两千条,爬虫专用
  6. 帝国cms插件如何兼容gbk和utf8
  7. 帝国cms插件之迅搜
  8. 帝国cms用户上传文件名的命名规则及修改方
  9. 帝国cms7.2函数大全
  10. 帝国cms代码片段备忘录