PHP の mkdir を使用して「a/b/c」のような多層ディレクトリを持つフォルダーを作成すると、ディレクトリが存在しないために作成が失敗するというメッセージが表示されることは誰もが知っていますが、この種のフォルダーを作成する必要があることがよくあります。プロジェクトレベルのディレクトリに複数のディレクトリを作成するにはどうすればよいですか?とにかく、mkdir は機能しません。他の方法はありますか?
もちろん、それはあります。php を使用してマルチレベルのディレクトリを作成するためのいくつかのソリューションを見てみましょう。
(1) 実際には mkdir を使用して複数レベルのディレクトリを作成できますが、PHP5 で複数レベルのディレクトリを作成するにはこの関数を使用する必要があります。
PHP5 ではディレクトリ作成関数 mkdir に新しいパラメーター recursive が追加されるため、ディレクトリを再帰的に作成する目的は recursive を true に設定することで達成できますが、これは PHP4 環境では機能しません。例: mkdir (' a/b/c',0777,true);
mkdir 関数プロトタイプ: bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] )
php 関数 mkdir パラメーターの説明
パスが必要です。作成するディレクトリの名前を指定します。context 必須。ファイルハンドルの環境を指定します。コンテキストは、ストリームの動作を変更するオプションのセットです。
(2) PHP で多階層ディレクトリを作成する方法を実装する関数を自分で書く
<p>function mkdirs($dir,$mode=0777){</p> if(is_dir($dir)||@mkdir($dir,$mode)){<br /> return true;<br /> }<br /> if(!mkdirs(dirname($dir),$mode)){<br /> return false;<br /> }<br /> return @mkdir($dir,$mode);<br /><p>}</p>
(3)自分で作成する PHP で複数レベルのディレクトリを作成する非常に効率的な方法
<p>function mkdirs($dir){ </p> return is_dir($dir) or (mkdirs(dirname($dir)) and mkdir($dir,0777)); <br /><p>}</p>
上記のカスタム関数は 1 つずつ説明するわけではありません。ご理解ください。自分で。