ホームページ > バックエンド開発 > PHPチュートリアル > [php] 「ファイル一覧」を読み込んで新しい順に表示し、各階層のディレクトリを再帰的に表示します。

[php] 「ファイル一覧」を読み込んで新しい順に表示し、各階層のディレクトリを再帰的に表示します。

WBOY
リリース: 2016-06-13 12:01:51
オリジナル
1115 人が閲覧しました

[php] 「ファイル一覧」を読み込んで新しい順に表示し、各階層のディレクトリを再帰的に表示します!

アイデア:

1. PHP が配置されているディレクトリ内のファイルリストを読み取り、「変更時刻、ファイル名」をキーと値のペアとして使用し、配列に挿入します。 「変更時刻」を逆順にソートします。 (ファイル一覧を新しい順に直接読み込むことはできないようです。ここでは間接的な方法です)

2. ファイルを読み込んだ場合はファイルを直接出力し、ディレクトリの場合はディレクトリを出力します。が出力され、その下のファイルが再帰的にスキャンされます。


<?php//遍历当前目录下所有文件的和目录,并以树装形式显示//1.打开目录句柄,获取句柄资源//2.读取句柄资源,并显示当前和子目录下的(目录和文件名称)function getDirFile($path){	if(!($file_handler=opendir($path)))		return;		$fileNTimes=array();	//遍历-当前目录的"文件",排除该php文件	while(false !== ($file=readdir($file_handler))){		if($file==&#39;.&#39; || $file==&#39;..&#39; || $file==&#39;index.php&#39;)			continue;		$fileNTimes[filemtime($path.&#39;/&#39;.$file)]=$file;	}	//倒序	krsort($fileNTimes);		foreach ($fileNTimes as $mtime=>$file)	{		$file_path="$path/$file";							//路径		$rel_path=str_replace(__DIR__."/", "", $file_path);	//相对路径		//若为-目录		if(is_dir($file_path)){			//根据"目录级别"缩进			if(substr_count($file_path,"/")>1){				$count=str_repeat("  ",substr_count($file_path,"/"));				echo $count.'+'.$file;			}else{				echo '+'.$file;			}			echo "<br/>";			getDirFile($file_path);		}		//若为-文件		else{			if(substr_count($file_path,"/")>1){				$count=str_repeat("  ",substr_count($file_path,"/"));				echo $count.getFile_html($rel_path,$file).getTime_html($mtime);							}else{				echo getFile_html($file,$file).getTime_html($mtime);			}			echo "<br/>";		}	}}function getTime_html($time){	return '<a style="font-size:10px;color:grey"> '.date('(Y-m-d H:m:s)',$time).'</a>';}function getFile_html($rel_path,$file){	return '<a href="&#39;.$rel_path.&#39;">'.$file.'</a>';}//-----------------------------------------$path=__DIR__;getDirFile($path);?>
ログイン後にコピー


効果:




関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート