1. 程式人生 > >PHP 遍歷目錄下面所有檔案(案例)

PHP 遍歷目錄下面所有檔案(案例)

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		*{padding: 0;margin: 0; list-style: none;}
		body>.father{
			margin:20px 0 0 20px;
		}
		b{ display: inline-block; width: 26px;}
		i{
			display: inline-block; width: 15px; height: 15px; margin-right: 3px;
			position: relative; top: 1px; cursor: pointer;
		}
		.child-dir i:before{
			content: '';
			display: inline-block;
			width: 15px; height: 15px; 
			background: url('./images/dir.png');
			background-size: 15px; 
		}
		.child-file i:before{
			content: '';
			display: inline-block;
			width: 15px; height: 15px; 
			background: url('./images/file.png');
			background-size: 15px; 
		}
		.father{ display: none; }
		.father:first-child{ display: block; }
	</style>
	<script src="./jquery.js"></script>
	<script>
		$(function(){
			$('.child-dir i').click(function(){
				$(this).parent().next('.father').toggle();
			});
		});
	</script>
</head>
<body>
<?php
	header('Content-type:text/html;charset=utf-8');
	function showAllFiles($fileName,$bar=''){
		echo '<div class="father">';

		// 開啟資源控制代碼
		$handle = opendir($fileName);

		// 讀取 . 和 ..
		$file = readdir($handle);
		$file = readdir($handle);

		// 遍歷
		while($file = readdir($handle)){

			// 將檔名拼接成目錄
			$newFile = $fileName.'/'.$file;

			// 將檔案編碼轉為utf-8
			$file = iconv('gbk', 'utf-8', $file);

			// 判斷是否是目錄
			if(is_dir($newFile)){

				// 如果是目錄 再次呼叫showAllFiles()
				echo '<div class="child-dir">'.$bar.'<i></i>'.$file.'</div>';
				// $bar .='<b></b>';
				showAllFiles($newFile,$bar.'<b></b>');
			}else{

				// 如果不是輸出檔案資訊
				echo '<div class="child-file">'.$bar.'<i></i><a href="'.$newFile.'">'.$file.'</a></div>';
			}
		}
		echo "</div>";
		closedir($handle);
	}
	showAllFiles('../');
?>
</body>
</html>

        執行結果: