递归读取所有文件PHP3种算法
/*foreach(glob(__DIR__.'/*.php') as $file)
{
echo $file;
}
*/
##新递归读取文件夹方法 返回完整路径
/*
function echo_all_file($path)
{
$path.='/*';
foreach(glob($path) as $_path)
{
if(is_dir($_path))
{
echo_all_file($_path);
}
else
{
echo $_path."\r\n";
}
}
}
##测试
echo_all_file(__DIR__);
*/
#####常规写法 directory 类 方法
function echo_all_file($path)
{
$fso = dir($path);
while($_path = $fso->read())
{
if('.'!=$_path && '..'!=$_path)
{
if(is_dir($path.'/'.$_path))
{
echo_all_file($path.'/'.$_path);
}
else
{
echo $path.'/'.$_path."\r\n";
}
}
}
$fso->close();
}
##测试
echo_all_file(__DIR__);
######另一种写法 函数形式
function echo_all_file($path)
{
$fso = opendir($path);
while($_path = readdir($fso))
{
if('.'!=$_path && '..'!=$_path)
{
if(is_dir($path.'/'.$_path))
{
echo_all_file($path.'/'.$_path);
}
else
{
echo $path.'/'.$_path."\r\n";
}
}
}
closedir($fso);
}
##测试
echo_all_file(__DIR__);