//@path string 传入指定路径
//@return array | boolean 成功返回文件数据,失败返回false;
function listDir($path, $pattern = 'ifcfg-eth'){
if(!file_exists($path)||!is_dir($path)) return false;
if (empty($pattern)) return false;
$files = [];
if (class_exists('DirectoryIterator')) {
$dir = new \DirectoryIterator($path);
// $aa = [];
while($dir->valid()){
// $aa[] = $dir->getFilename();
if($dir->getFilename() !== '.' && $dir->getFilename() !== '..'){
// $bb[] = $dir->getFilename();
// dump($dir->getFilename());
// 仅匹配文件,子目录未考虑(看需求而变)
if (!$dir->isDir()) {
$filename = $dir->getFilename();
// dump(strpos($filename, $pattern));
if (false !== strpos($filename, $pattern)) {
$files[] = $path.$filename;
// break;
}
}
}
$dir->next();
}
}else{
return false;
}
return $files;
}
//读取该目录下所有内容
public static function listAlldir ($dir){
// dump(DIRECTORY_SEPARATOR);
if(!is_dir($dir)) return false;
$handle = opendir($dir);
$aa = [];
$bb = [];
if($handle){
while(($fl = readdir($handle)) !== false){
// $temp = $dir.DIRECTORY_SEPARATOR.$fl;
$temp = $dir.$fl;
//如果不加 $fl!='.' && $fl != '..' 则会造成把$dir的父级目录也读取出来
if(is_dir($temp) && $fl!='.' && $fl != '..'){
$aa[] = $temp;
//echo '目录:'.$temp.'<br>';
read_all($temp);
}else{
if($fl!='.' && $fl != '..'){
if(strpos($fl,'ifcfg') !== false){
$bb[] = $temp;
}
//echo '文件:'.$temp.'<br>';
}
}
}
return $bb;
}
}