Heim >Backend-Entwicklung >PHP-Tutorial > PHP遍历文件目录与驱除目录中的文件

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

WBOY
WBOYOriginal
2016-06-13 13:19:21900Durchsuche

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);

	}
}


?>

?

?

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>
?

?

?

1 楼 zeroneta 2011-09-24  
php完美无沉余代码遍历文件夹
http://zeroneta.iteye.com/blog/1173071
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn