Heim > php教程 > php手册 > PHP遍历目录文件(条件筛选)

PHP遍历目录文件(条件筛选)

WBOY
Freigeben: 2016-06-06 19:34:06
Original
928 Leute haben es durchsucht

PHP遍历目录文件(条件筛选) http://www.lanzusheng.cn/Article/28.html原有基础上改进(加了是否显示子目录文件) 无 ?php/** * * 遍历目录文件,可按条件匹配 * @param string $dir * @param array $file_type按条件筛选(字符串:包含该字符串的文件;数组:

PHP遍历目录文件(条件筛选)
http://www.lanzusheng.cn/Article/28.html原有基础上改进(加了是否显示子目录文件)
<?php
/**
 * 
 * 遍历目录文件,可按条件匹配
 * @param string $dir
 * @param array  $file_type按条件筛选(字符串:包含该字符串的文件;数组:按第一个元素正则匹配)
 * @param int $is_hidden_sub_file是否不显示子目录文件(默认显示全部文件)
 * @param int $show_sub_arr是否以数组形式显示子目录及文件
 * @param int $is_show_dir是否加上目录(目录/文件名)
 */
function myScanDir($dir,$file_type='',$is_hidden_sub_file=0,$show_sub_arr=0,$is_show_dir=0){
	$file_arr = array();
	$files    = scandir($dir);
	if(!empty($files) && count($files)!=2){
		foreach($files as $k=>$filename){
			if($filename!='.' && $filename!='..'){
				//不显示子目录
				if(is_dir($dir.'/'.$filename)){
					if(!empty($is_hidden_sub_file)) continue;
				}
				//是否筛选指定文件
				if(empty($file_type)){
					if(is_dir($dir.'/'.$filename)){
						if(empty($show_sub_arr)){
							$file_arr   = array_merge($file_arr,myScanDir($dir.'/'.$filename,'',0,$is_show_dir));
						}else{
							//以数组形式显示子目录文件(目录名为键名)
							$sub_files  = myScanDir($dir.'/'.$filename,'',$show_sub_arr);
							if(!empty($sub_files)) $file_arr[$filename] = $sub_files;
						}
					}else{
						//是否加上目录(目录/文件)
						if(empty($is_show_dir)){
							$file_arr[] = $filename;
						}else{
							$file_arr[] = $dir.'/'.$filename;
						}
					}
				}else{
					//递归
					if(is_dir($dir.'/'.$filename)){
						if(empty($show_sub_arr)){
							$file_arr   = array_merge($file_arr,myScanDir($dir.'/'.$filename,$file_type,0,$is_show_dir));
						}else{
							$sub_files  = myScanDir($dir.'/'.$filename,$file_type,$show_sub_arr);
							if(!empty($sub_files)) $file_arr[$filename] = $sub_files;
						}
					}else{
						if(is_array($file_type)){
							//正则匹配
							if(preg_match($file_type[0],$filename)){
								if(empty($is_show_dir)){
									$file_arr[] = $filename;
									continue;
								}else{
									$file_arr[] = $dir.'/'.$filename;
									continue;
								}
							}
						}else{
							//字符串查找
							if(false!=stristr($filename,$file_type)){
								if(empty($is_show_dir)){
									$file_arr[] = $filename;
								}else{
									$file_arr[] = $dir.'/'.$filename;
								}
								continue;
							}
						}
					}
				}
			}
		}
	}
	return $file_arr;
}
$files = myScanDir(dirname(__FILE__),'.php',1);
var_dump($files);
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage