6

mkdir を使用して、ファイル構造用に通常 2 つのネストされたディレクトリを作成しています。作成されるディレクトリは常に 0755 に設定されます。しかし、私が使用しているコードはそうです。

 mkdir('path_one/path_two', 0777, true);

私はやってみました

 chmod('path_one/path_two', 0777);

mkdir が正しく機能しない原因は何ですか?

4

2 に答える 2

7

mkdir は正しく機能しています。作成される中間ディレクトリは、現在の umask に基づいて設定されます。次のようなものが必要です。

umask(0777);
mkdir('path_one/path_two', 0777, true);
于 2013-09-07T21:27:53.230 に答える
2

PHPマニュアルから:

モードは、 umask()を使用して変更できる現在の umask によっても変更されます。

で設定されているビットは、 で使用される結果でumask()設定解除mkdir()されることに注意してください。デフォルトの umask は 0022 で、mkdir のデフォルトの作成モードは 0777 で、結果の値は 0755 になります。これは、作成されたすべてのディレクトリに適用されます。

于 2013-09-07T21:36:04.017 に答える