ホームページ >php教程 >php手册 >PHP ディレクトリ関数を使用してディレクトリを作成および読み取るチュートリアルの例

PHP ディレクトリ関数を使用してディレクトリを作成および読み取るチュートリアルの例

WBOY
WBOYオリジナル
2016-06-21 08:53:171039ブラウズ

今日は主に、PHP Web サイト開発におけるファイル ディレクトリ関数の応用について紹介します。 PHP Web サイトの開発では、ディレクトリ ファイルの情報を読み込んだり、必要なファイルを格納するディレクトリを作成したりする必要があり、ディレクトリ ファイルのサイズが指定されたサイズを超えた場合、ディレクトリ ファイルを手動で削除する必要があり、時間と手間がかかります。ディレクトリファイルは、PHP 独自のディレクトリ操作機能を通じて完全に管理できます。

この記事では、サンプル チュートリアルの形式で PHP ファイル ディレクトリ機能の使用方法を説明します。 サンプルの主な機能は次のとおりです。 1. PHP ディレクトリ機能を使用して、複数のディレクトリを作成します。 2. ディレクトリ内にテキスト ファイルを作成します。 3. 再帰的実装は、ディレクトリ (フォルダー) 情報を読み取り (走査)、ディレクトリ内のすべてのサブディレクトリとファイルをリスト形式でリストします。

この例にはファイルの読み取りと書き込みの操作が含まれます。最初に PHP ファイルの読み取りと書き込みのチュートリアルを確認することをお勧めします。

この例のディレクトリ構造: PHP 実行可能ファイルは、leapsoulcn ディレクトリと同じレベルにあり、作成されたサブディレクトリは、leapsoulcn ディレクトリの下にあります。

ステップ 1: PHP ディレクトリ関数を使用して関連ディレクトリを作成する

1
2
3
4
5
6
7
8
9
10
11


mkdir("leapsoulcn",0777);

mkdir("leapsoulcn/leapsoul",0777);

mkdir("leapsoulcn/php",0777);

mkdir("leapsoulcn/php/web",0777);

mkdir("leapsoulcn/php/web/test",0777);
?>

1234567891011

<🎜> mkdir<🎜>(<🎜>"leapsoulcn"<🎜>,<🎜> 0777<🎜>)<🎜>;<🎜><🎜> <🎜> mkdir<🎜>(<🎜>"leapsoulcn/leapsoul"<🎜>,< 🎜>0777<🎜>)<🎜>;<🎜><🎜> <🎜> mkdir<🎜>(<🎜>"leapsoulcn/php"<🎜>,< 🎜>0777<🎜>)<🎜>;<🎜><🎜> <🎜> mkdir<🎜>(<🎜>"leapsoulcn/php/web"<🎜> ,<🎜>0777<🎜>)<🎜>;<🎜><🎜> <🎜> mkdir<🎜>(<🎜>"leapsoulcn/php/web/test"<🎜>,<🎜>0777<🎜>)<🎜>;<🎜><🎜> ?>

説明: このコードでは、まず PHP ディレクトリ関数 mkdir を使用してメイン ディレクトリ Leapsoulcn を作成し、2 つのサブディレクトリ Leapsoul と php を作成し、php ディレクトリの下に Web ディレクトリと test ディレクトリを作成します。

知識ポイント: mkdir は主にディレクトリを作成するために使用され、新しいディレクトリ名 (複数レベルのディレクトリを作成する場合はディレクトリ パスを含める必要があることに注意してください) と 2 つのパラメータがあります。新しいディレクトリのアクセス許可、つまり umask 値。最初の数値は通常 0、2 番目の数値は所有者フランチャイズを指定し、3 番目の数値は所有者ユーザー グループのフランチャイズを指定し、4 番目の数値はグローバルを指定します。使用可能な値は次のとおりです:
1 = 実行可能
2 = 書き込み可能
4 = 読み取り可能
3 つの数字を合計すると、7 はすべてのアクセス許可を表します。必要に応じて、作成する新しいディレクトリにさまざまなアクセス許可を与えることができます。

ステップ 2: Leapsoulcn/php/ ディレクトリに Leapsoulcn.txt ファイルを作成し、関連するコンテンツを書き込みます

1
2
3
4
5
6
7
8
9
10
11
12
13
14


@$fp = fopen("leapsoulcn/php/leapsoulcn.txt","w");

if(!$fp){
echo "system error";
exit();
}else {
$fileData = "domain"."t"."www.leapsoul.cn"."n";
$fileData = $fileData."description"."t"."PHP网站开发教程网,面向PHP初学者的PHP教程网。"."n";
$fileData = $fileData."title"."t"."本实例主要讲述PHP目录函数的具体应用:涵盖读取目录、创建目录、删除目录等功能";
fwrite($fp,$fileData);
fclose($fp);
}
?>

1234567891011121314

<🎜> @$fp = fopen("leapsoulcn/php/leapsoulcn.txt","w");<🎜> <🎜> if(!$fp< /span>){<🎜> エコー 「システム エラー」;<🎜> 終了();<🎜> }その他 {<🎜> $fileData = "ドメイン"."t "."www.leapsoul.cn". "n";<🎜> $fileData = $fileData."説明" ."t"."PHP Web サイト開発チュートリアル Web サイト、PHP 初心者向け PHP チュートリアル Web サイト "."n";<🎜> $fileData = $fileData."title" ."t"."この例では主に、ディレクトリの読み取り、ディレクトリの作成、ディレクトリの削除などの機能を含む、PHP ディレクトリ関数の特定のアプリケーションについて説明します。";< 🎜> fwrite($fp,< /span>$fileData);<🎜> fclose($fp)< /span>;<🎜> }<🎜> ?>

注: このサンプル コードの詳細な説明については、以前に紹介した PHP ファイルの作成チュートリアルを参照してください。

ステップ 3: ディレクトリ名とテキスト ファイル名を読み取る (トラバース)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


$dir = opendir("leapsoulcn");

while ($fileDir = readdir($dir)) {

if (!strcmp($fileDir,".")!strcmp($fileDir,"..")) {
continue;
}
echo $fileDir."目录列表:

"
;
       
        $subDir = "leapsoulcn/".$fileDir;
       
        $dirC = "->";
        listSubDir($subDir,$dirC);
    }
    closedir($dir);
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/>15
16
17


$dir = opendir("leapsoulcn") ;

その間 ($fileDir = readdir($dir)) {
                                                                                if (!strcmp( span>$fileDir,".")!strcmp($fileDir,"..")スパン>)スパン> {
続行;スパン>
}
エコー $fileDir."ディレクトリ リスト:

;
                                          $subDir = "leapsoulcn/".$fileDir;
                                          $dirC = "->";
listSubDir($subDir,$ dirC);
}
closedir($dir)< /span>;
?>

注: このコード例チュートリアルでは、PHP ディレクトリ関数 opendir()、readdir()、および Closedir() が主に使用されます。

知識ポイント:

1. opendir 関数は、アクセス中の特定のディレクトリを開くために使用されます。このチュートリアルでは、PHP 実行ファイルとアクセス中のメイン ディレクトリは同じレベルにあることに注意してください。渡されるパラメータはディレクトリ名のみです。同じレベルにない場合、または複数レベルのディレクトリを読み取る場合は、特定のディレクトリ パスまたはファイル パスを指定する必要があります。

2. opendir 関数でメイン ディレクトリを読み取った後、while ループを使用してメイン ディレクトリ内の複数レベルのディレクトリとファイルを読み込みます。この関数は、ディレクトリから読み込みます。読み取り可能なディレクトリまたはファイル名がない場合は、False が返されます。このチュートリアルの例では、ディレクトリはレベルごとに読み取られるため、取得されたディレクトリ情報が含まれます。 . および .. の場合は、このループから抜け出し、次のレベルのディレクトリの読み取りを続けます。

3. ホーム ディレクトリ内のすべてのサブディレクトリとファイルを読み取った後、ファイルを閉じる fclose 関数と同様に、PHP ディレクトリ関数 Closedir を使用してディレクトリ ハンドルを閉じます。

ステップ 4: ディレクトリとファイルを読み取る (走査する) ための再帰関数を作成する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27


    関数 listSubDir($dirInfo,$dirC)
    {
        場合 (is_dir($dirInfo)) {
            $subDir = ディレクトリ($dirInfo);
            その間 ($subFile = $subDir->read()) {
                場合 (!strcmp($subFile,".")!strcmp($subFile,"。 .")) {
                    続行;
                }
               
                $newDir = $dirInfo."/".$subFile;
               
                場合 (is_file($newDir)) {
                    エコー $dirC.$subFile.":文件属性
"
;
                }
                else{
                    エコー $dirC.$subFile.":目录属性
"
;
                   
                    listSubDir($newDir,"-".$dirC );
                }
            }
            $subDir->close();
            戻る;
        }
        その他 戻る;
    }
?>

説明: この関数には、読み取るディレクトリ (ディレクトリ パスを含む) と表示に使用されるマルチレベル ディレクトリ区切り文字の 2 つのパラメータがあります。この関数では主にPHPのファイルディレクトリ関数is_dir、is_file、dirクラスを使用します。

知識ポイント:

1. まず、is_dir を使用して、ディレクトリを読み取るかファイルを読み取るかを決定します。この関数のパラメーターは、ディレクトリ パスの問題に注意してください。

2. 読み取る必要があるディレクトリがディレクトリであると判断された場合は、 dir ディレクトリ クラスを使用して、その複数レベルのサブディレクトリを再帰的に読み取ります。 dir クラスの操作関数関数は、opendir、readdir、closedir などの PHP ディレクトリ関数の関数と一致しています。

この時点で、作成されたディレクトリ全体と、そのディレクトリを読み取るためのコード例が完成しました。メイン ディレクトリの下にある複数レベルのサブディレクトリの名前とテキスト ファイル名が一覧表示されます。

ディレクトリを削除するにはどうすればよいですか?

ディレクトリを削除するには、PHP ディレクトリ関数 rmdir を使用できます。この関数のパラメータは、相対ディレクトリ パスまたは絶対ディレクトリ パスを使用できます。削除されるのは空のディレクトリである必要があります。上記のコード例を通じて、どれが空のディレクトリであるかを完全に判断できます。

これらの基本的な PHP ディレクトリ関数とファイル操作関数を適用すると、ファイル システムと完全に対話し、ディレクトリの作成、削除、読み取り、ファイル情報の管理ができる Web サイトのディレクトリ ファイル管理システムを作成できます。ファイルサイズを読み取るには?ファイルを削除または移動するにはどうすればよいですか?あはは、次回はそれを共有しましょう。

注意: PHP Web サイト開発チュートリアル-leapsoul.cn 転載の際は、元のソースとこの記述をリンクの形で明記してください。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。