直接上代码:
/获取一个目录下的文件列表 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);
这样就能显示汉字了。