php visitFile()遍历指定文件夹函数

yipeiwu_com5年前PHP代码库
注:visitFile()有少量修改
复制代码 代码如下:

<?
// 查看指定文件夹的文件
$fileList = array();
function visitFile($path)
{
global $fileList;
$path = str_replace("\\", "/", $path);
$fdir = dir($path);
while (($file = $fdir->read()) !== false)
{
if($file == '.' || $file == '..'){ continue; }
$pathSub = preg_replace("*/{2,}*", "/", $path."/".$file); // 替换多个反斜杠
$fileList[] = is_dir($pathSub) ? $pathSub."/" : $pathSub;
if(is_dir($pathSub)){ visitFile($pathSub); }
}
$fdir->close();
return $fileList;
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<form method="get">
<?
$path = str_replace("\\", "/", $path);
$path = preg_replace("*/{2,}*", "/", $path);
?>
路径:<input type="text" name="path" id="path" value="<?=$path;?>"/><br>
<li>磁盘根目录 /</li>
<li>网络本地 ./phpMyAdmin</li>
<li>本地磁盘 file://C: 或者 C:</li>
<br>
<input name="action" type="submit" id="action" value="view" />
<input name="action" type="submit" id="action" value="delete" onclick="if(!confirm('是否删除 '+path.value+' 的所有子文件夹和子文件?')) return false;" />
</form>
<?
if(!empty($path)){
$path = preg_replace("*/{2,}*", "/", $path);
$files = visitFile($path);
switch(strtolower($_GET["action"]))
{
case "view":
foreach($files as $key => $value)
{
printf("No.%4d·%s<br>\r\n", $key+1, $value);
}
break;
case "delete":
$faileFiles = array();
foreach(array_reverse($files) as $value)
{
if(!unlink($value))
{
array_push($faileFiles, $value);
}
}
if(!unlink($path)) { array_push($faileFiles, $path); }
if(count($faileFiles) > 0)
{
printf("<br><br>删除失败文件(%d):<p>\r\n", count($faileFiles));
foreach( $faileFiles as $key => $value)
{
printf("No.%4d·%s<br>\r\n", $key+1, $value);
}
}
break;
}
}
?>

相关文章

详解PHP的抽象类和抽象方法以及接口总结

PHP中的抽象类和抽象方法自己用的不多,但是经常会在项目中看到别人使用,同样,今天在看别人的代码的时候,发现使用了抽象类,就总结下: 抽象类: 1、如果一个类中有一个方法是抽象方...

PHP中抽象类,接口功能、定义方法示例

本文实例讲述了PHP中抽象类,接口功能、定义方法。分享给大家供大家参考,具体如下: 这里先介绍接口,因为在我最近看的好几本php工具书中都没有提到抽象类。 本人也觉得,在理解了接口后抽象...

php支持断点续传、分块下载的类

本文是为大家分享php支持断点续传、分块下载的类,供大家参考,具体内容如下 <?php /** * User: djunny * Date: 2016-04-2...

PHP 字符串长度判断效率更高的方法

有经验的程序员发现,php判断字符串长度,使用isset()在速度上比strlen()更快,执行效率更高。即:复制代码 代码如下:$str = ‘aaaaaa';if(strlen($s...

php实现数组中出现次数超过一半的数字的统计方法

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出...