Home > Backend Development > PHP Tutorial > PHP遍历文件目录与驱除目录中的文件

PHP遍历文件目录与驱除目录中的文件

WBOY
Release: 2016-06-13 13:19:21
Original
898 people have browsed it

PHP遍历文件目录与清除目录中的文件

今天无聊中练习了一下PHP遍历文件目录的程序,编写了以下两个程序,不过质量不是很好,轻拍~~~

?

1、清除PHP缓存文件

?

?

<?php

function read_dir($dir,$file)
{
	$a =strpos($file,".php");
	
	if($a>0) 
	{
		unlink($dir . $file);
		echo "delete $dir$file <br>";
		return true;
	}
	
	if(strpos($file,".") === 0 || strpos($file,".") !== false ) return true;
	
	if(strpos($file,".") === false || strpos($dir,"/") === false) 
	{
		$dir = $dir . $file . "/";
		if(!is_dir($dir)) return false;
		$dh = opendir($dir);
		while(($file = readdir($dh)) != false)
		{
			read_dir($dir,$file);   //递归调用
		}
	}
}

function clear_caches()
{
	$dir = "./temp/";  //要清除的PHP缓存文件目录

	if(!is_dir($dir)) die("It is not a dir");
	$dh = opendir($dir);

	while(($file = readdir($dh) )!=false)
	{
		//var_dump($file);
		read_dir($dir,$file);

	}
}


?>
Copy after login

?

?

2、遍历目录中所有文件

?

<html>

<head>
	<meta http-enquiv="Content-Type" content="text/html;charset=gb2312">
	<title>查看目录</title>
</head>

<body>
	<table width="600" align="center">
		<tr>
			<th width="50%">文件名</th>
			<th width="25%">修改时间</th>
			<th width="25%">文件大小(k)</th>
		</tr>


	<?php
	 
	//$dir = "./admin/";
	$dir = "c:/";
	$up_dir = "上级目录";
	$up_url = $dir;
	
	if(isset($_REQUEST['act']) && $_REQUEST['act']=='list_dir')
	{
		if(empty($_REQUEST['dir']))
		{
			$up_dir="目录为空!";
		}
		$dir = isset($_REQUEST['dir']) ? $_REQUEST['dir'] : $dir;

	}
    if(!is_dir($dir))
	{
		$up_dir="无效目录!";
	}

	?>

		<tr>
			<td colspan="3">
			<?php 
			
			if(strpos($up_dir,"上级目录")!==false)
			{
				//if($up_url=="") echo $up_dir;
				if($dir != "./admin/")
				{
				 $up_url = substr($dir,0,-1);
				 $k = strrpos($up_url,"/");
				 $up_url = substr($up_url,0,$k-strlen($up_url));
				 $up_url = $up_url ."/";
				}
				 echo "<a href=\"test.php?act=list_dir&dir=$up_url\">$up_dir</a>";
			} 
			else 
			{
				echo $up_dir;
				die();
			}
			?>
			</td>
		</tr>
	<?php 
	    $up_dir = $dir;
		$dh = opendir($dir);  
		while(($file=readdir($dh)) != false)
		{	
			if($file != "." && $file != ".." && $file != ".svn" )
			{
				if(strpos($file,".") !==false)
				{
				    $time = date("Y-m-d H:i:s", filectime($dir . $file));
					$size = filesize($dir . $file)/1000;
					echo "<tr><td>$file</td><td>$time</td><td>$size</td></tr>";
				}
				else
				{   
					$time = date("Y-m-d H:i:s.", filectime($dir . $file));
					$size = filesize($dir . $file)/1000;
					$dir = $dir . $file ."/";
					
					echo "<tr><td><a href =\"test.php?act=list_dir&dir=$dir\">$file</a></td><td>$time</td><td>$size</td></tr>";
					$dir = $up_dir;
					
				}
			}
		}
		
	?>
		

	</table>

<?php die();  ?>
</body>


</html>
Copy after login
?

?

?

1 楼 zeroneta 2011-09-24  
php完美无沉余代码遍历文件夹
http://zeroneta.iteye.com/blog/1173071
Related labels:
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 Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template