ホームページ  >  記事  >  バックエンド開発  >  PHPで複数レベルのディレクトリを作成する方法

PHPで複数レベルのディレクトリを作成する方法

WBOY
WBOYオリジナル
2016-06-20 13:03:501366ブラウズ

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 パラメーターの説明

パスが必要です。作成するディレクトリの名前を指定します。

モードが必要です。権限を指定します。デフォルトは 0777 です。

再帰的 必須。再帰モードを設定するかどうかを指定します。

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 つずつ説明するわけではありません。ご理解ください。自分で。


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