<?php
/**
* 工具文件
* 目的在于递归 显示文件夹里的所有文件,仅限linux
*
* 调用示例
* php recursive.php /home/temp/2
*
*/
//参数确定
if (count($argv) > 1 )
$dir1 = del_postfix($argv[1]);
else
$dir1 = '/home';
//检查第一个路径有,后者没有或错误的方法。
recursive_fold($dir1);
echo "all ok\n";
/**
* 去除路径末尾的/,并确保是绝对路径
*
* @param unknown_type $dir
* @return unknown
*/
function del_postfix($dir)
{
if (!preg_match('#^/#', $dir)) {
throw new Exception('参数必须是绝对路径');
}
$dir = preg_replace('#/$#', '', $dir);
return $dir;
}
/**
* 公用函数,会调用一个递归方法实现比较
*
* @param string $dir1 作为标准的路径
*/
function recursive_fold($dir1){
if (is_dir($dir1)) {
$handle = dir($dir1);
if ($dh = opendir($dir1)) {
while ($entry = $handle->read()) {
if (($entry != ".") && ($entry != "..") && ($entry != ".svn")){
//文件全名
$new = $dir1."/".$entry;
if(is_dir($new)) {
//比较
recursive_fold($new) ;
} else { //如果1是文件,
echo $new ."\n";
}
}
}
closedir($dh);
}
}
}
递归显示linux文件夹下的文件
最新推荐文章于 2021-05-12 14:00:19 发布