生成されたディレクトリ ツリーをたどってディレクトリ ツリーを生成する_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:10:19
オリジナル
1918 人が閲覧しました

生成されたディレクトリツリーをたどってディレクトリツリーを生成します

1.

前回のブログを書いていたとき、ファイル構造を表示するためにディレクトリ ツリー構造を使用する必要があったため、すべてのフォルダーとファイルを手動で「走査」する必要がありました。その後、これはエラーが発生しやすく、非常に労力がかかると考えたので、ディレクトリの下にあるファイルとフォルダーを走査し、必要に応じてディレクトリ ツリー構造を使用できるようにディレクトリ ツリーを生成する php スクリプトを作成することを考えました。将来的には、直接実行するだけです。スクリプトによって現在生成されているディレクトリ ツリー構造は、ブラウザを通じて直接表示することも、ダウンロードして txt ファイルを生成することもできます。

2. アイデアの紹介

ディレクトリツリーの生成の考え方は非常にシンプルで、現在のフォルダーの下にある内容をたどって、「.」と「..」に出会ったらそれを再帰的に呼び出して保存します。現在のフォルダーを走査した後、この操作でディレクトリ ツリーを生成し、ディレクトリ ツリーを表示またはダウンロードします。執筆プロセスにはまだ詳細がいくつかありますが、開発まで明らかにされません。理解しやすく拡張しやすいように、関数でできることをクラスにまとめて、フォルダー内を移動するという概念を明確にしました。

3. コードの実装

アイデアを思いついたので、コードを書くのが楽になりました(優れた人はコードを書くときにすぐにコードを書くのではなく、より多くの時間をかけて考えることさえあるとよく言うのはこのためです)。コード:

3.1 ディレクトリツリーの生成

生成されたディレクトリ ツリーをたどってディレクトリ ツリーを生成する_PHP チュートリアル 1 /** 2 * ディレクトリツリーを生成する 3 */ 4 public function createTree($path, $level=0){ 5 $レベル = $レベル; 6 $this->tree .= str_repeat($this->options["padding"], $level) 7 .$this->オプション["dirpre"] 8 .$this->_basename($path) 9 .$this->options["newline"]; 10 $レベル++; 11 $dirHandle = opendir($path); 12 $files = array(); 13 while (false !== ($dir = readdir($dirHandle))) { 14 if($dir == "." || $dir == ".."){ 15 続ける; 16 } 17 if(!$this->options["showHide"] && substr($dir, 0, 1) == "."){ 18 続ける; 19 } 20 $dir = $path.DIRECTORY_SEPARATOR.$dir; 21 if(is_dir($dir)){ 22 $this->createTree($dir, $level); 23 } elseif (is_file($dir)){ 24 array_push($files, $dir); 25 } 26 } 27 closedir($dirHandle); 28 foreach ($files as $key => $value) { 29 $this->tree .= str_repeat($this->options["padding"], $level) 30 .$this->オプション["filepre"] 31 .$this->_basename($value) 32 .$this->options["newline"]; 33 } 34 戻る $this; 35 } コードを表示

3.2 ディレクトリツリーの表示

生成されたディレクトリ ツリーをたどってディレクトリ ツリーを生成する_PHP チュートリアル1 /** 2 * ディレクトリツリーを表示 3 */ 4 パブリック 関数 showTree(){ 5 エコー "
"
<span>6</span> .<span>$this</span>-><span>ツリー
</span><span>7</span> ."
"; 8 } コードを表示

3.3 ダウンロードディレクトリツリー

生成されたディレクトリ ツリーをたどってディレクトリ ツリーを生成する_PHP チュートリアル1 /** 2 * ディレクトリツリーファイルをダウンロード 3 */ 4 パブリック function downloadTree($name){ 5 header("Content-type: text/plain"); 6 header("Content-Disposition:attachment;filename={$name}.txt"); 7 エコー $this->ツリー; 8 } コードを表示

3.4 テスト中

コードの次の 2 つの端を使用してそれぞれテストします:

生成されたディレクトリ ツリーをたどってディレクトリ ツリーを生成する_PHP チュートリアル1 $t = new Dirtree(array("padding"=>" ","newline"=>"
")); 2 $t->createTree("D:autoload")->showTree("tree"); コードを表示

上記のコードは、図 1 のように、ディレクトリ構造情報をブラウザに出力します。

生成されたディレクトリ ツリーをたどってディレクトリ ツリーを生成する_PHP チュートリアル1 $t = new Dirtree(array("padding"=>" ","newline"=>"rn")); 2 $t->createTree("D:autoload")->downloadTree("tree"); コードを表示

上記のコードが実行されると、ブラウザーはtree.txtファイルをダウンロードします。ファイルを開くための情報が図2に示されています

4.まとめ

ディレクトリツリーを生成する機能は基本的に完成していますが、時間があれば拡張してより使いやすくし、コマンドラインモードをサポートすることもできます。または、フォルダーを折りたためるように出力内容を強化します (js 実装)。

この記事の著作権は著者ifforever(luluyrt@163.com)に帰属します。記事を転載した後は、著者と原文リンクをわかりやすい位置に記載する必要があります。記事ページに記載されていない場合は、法的責任を追及する権利が留保されます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/937011.html技術記事生成されたディレクトリ ツリーをたどって、ディレクトリ ツリーを生成する 1. はじめに 前回のブログを書いたとき、ファイル構造を表示するためにディレクトリ ツリー構造を使用する必要があったため、すべてのファイルを配置するのはありがたい作業でした...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート