Home > php教程 > php手册 > body text

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

WBOY
Release: 2016-06-06 19:34:06
Original
866 people have browsed it

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);
Copy after login
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!