次の状況で2レベルのディレクトリを作成する関数のヘルプが必要です。
- 目的のサブディレクトリが親ディレクトリに存在します。何もしません。
- 親ディレクトリは存在しますが、サブディレクトリは存在しません。サブディレクトリのみを作成します。
- 親ディレクトリもサブディレクトリも存在しません。最初に親ディレクトリを作成し、次にサブディレクトリを作成します。
- いずれかのディレクトリが正常に作成されなかった場合は、FALSEを返します。
助けてくれてありがとう。
の 3 番目のパラメーターを使用しますmkdir()
。
recursiveパス名で指定されたネストされたディレクトリの作成を許可します。デフォルトは FALSE です。
$path = '/path/to/folder/with/subdirectory';
mkdir($path, 0777, true);
file_existsを使用して、フォルダーが存在するかどうかを確認し、フォルダーis_dir
であるかどうかを確認できます。
if(file_exists($dir) && is_dir($dir))
ディレクトリを作成するには、mkdir
関数を使用できます
次に、質問の残りの部分は、要件に合わせてこれを操作するだけです
mkdir
、特に$recursive
パラメータを参照してください。
私がどれだけ苦しんだか..そしてこのスクリプトを手に入れました..
function recursive_mkdir($dest, $permissions=0755, $create=true){
if(!is_dir(dirname($dest))){ recursive_mkdir(dirname($dest), $permissions, $create); }
elseif(!is_dir($dest)){ mkdir($dest, $permissions, $create); }
else{return true;}
}
探している関数は MKDIR です。ディレクトリを再帰的に作成するには、最後のパラメータを使用します。そしてドキュメントを読んでください。
PHP 5.0 以降では、 mkdirには再帰的なパラメーターがあり、見つからない親を作成します。
// Desired folder structure
$structure = './depth1/depth2/depth3/';
// To create the nested structure, the $recursive parameter
// to mkdir() must be specified.
if (!mkdir($structure, 0744, true)) {
die('Failed to create folders...');
}
Returns TRUE on success or FALSE on failure.