2012-09-09 17:50:58| カテゴリ: デフォルト カテゴリ
では、mkdir を使用してそれを作成するにはどうすればよいでしょうか?まず、マニュアルから次のように mkdir の説明をコピーしましょう:
bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )上記はPHP5マニュアルの記述情報です。つまり、mkdir('./test',0777)のようなフォルダを作成できます。しかし、複数レベルのディレクトリを再帰的に作成するにはどうすればよいでしょうか?
パス名で指定された新しいディレクトリを作成してみます。
モードを 8 進数として指定することもできます。これは、数値がゼロで始まる必要があることを意味します。モードは現在の umask によっても変更されます。これは umask() で変更できます。
注: Windows ではモードは無視されます。 PHP 4.2.0 以降はオプションです。
デフォルトのモードは 0777 で、これは可能な最大アクセスを意味します。モードの詳細については、chmod() ページを参照してください。 例 1. mkdir() の例
mkdir("/path/to/my/dir", 0700); ?>
成功した場合は TRUE、失敗した場合は FALSE を返します。
注: PHP 5.0.0 以降、rmdir() は特定の URL ラッピング プロトコルでも使用できます。 rmdir() がサポートする URL カプセル化プロトコルのリストについては、付録 N を参照してください。
注: コンテキストのサポートは PHP 5.0.0 で追加されました。コンテキストの説明については、リファレンス CLX、ストリーム関数を参照してください。
注: 再帰パラメータは PHP 5.0.0 で追加されました。
注: セーフ モードがアクティブになると、PHP は操作されているディレクトリが実行されているスクリプトと同じ UID (所有者) を持つかどうかを確認します。
方法は次のとおりです:
1. PHP5 の新しいメソッドを使用する
2. マルチレベルのディレクトリを作成するための独自の再帰メソッドを作成します。
最初のもの (mkdirs を使用してマルチレベルの親を生成する)
1. まず、mkdir() と mkdirs()、および is_dir と dirname() の違いについて簡単に説明します。
mkdir() は既存のディレクトリ内にのみフォルダーを作成できます (つまり、親が存在する必要があります)。mkdirs() は、存在しないディレクトリにフォルダーを作成できます。例: a\b では、複数レベルのディレクトリを作成できます。
dirname() はパスのディレクトリ部分を返します。
2. 一般的なプロセスは次のとおりです:
(1) まず is_dir を使用して、それがすでにフォルダーであるかどうかを判断し、フォルダーである場合は TRUE を返します。存在しない場合 (またはフォルダーではない場合)、作成を試みます。もちろん、親が存在しない可能性があります。その場合、mkdir は正常に作成されませんが、エラーは報告されないため、@ を使用して非を抑制します。 -致命的なエラー。
(2) 渡されたパラメータがどれも条件を満たしていない場合は、最初にパスのディレクトリ部分を取得します。もちろん、それは存在しないマルチレベルの親である可能性があるため、mkdirs() を実行します。成功した場合は最初に親レベルを作成するために使用され (失敗した場合は FALSE を返します)、次に mkdir を使用して最終ディレクトリを作成します。
2番目のタイプ
(注: このソリューションは非常に合理化されており、非常に優れたソリューションです。使用することをお勧めします)
一般的なプロセス:
パスを取得した後、まずそれが有効なファイル ディレクトリかどうかを判断し、有効な場合はプログラムに戻って終了します。そうでない場合 (ここでは選択条件として OR が使用されているため、つまり条件の 1 つが満たされている限り)、それ自体が再帰的に呼び出され、渡されたパス内のディレクトリが 1 つ少なくなります。このように、まず上位階層の親ディレクトリに戻り、mkdirを使って次階層を作成します。さて、上記は PHP を使用してフォルダー (および複数レベルのフォルダー) を作成する方法です。 ^_^
概要:1. PHP5 に付属の mkdir で新しいパラメータ recursive を使用します。 recursive を true に設定すると、ディレクトリを再帰的に作成する目的を達成できますが、これは PHP4 では機能しません。
3. mkdir を使用すると、複数レベルのフォルダーを非常に賢く作成できます。