English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHPで多層ディレクトリを作成する方法の2つ

PHP针对目录的创建,有一个专门的函数mkdir():成功,返回true,失败,返回false

函数mkdir有四个参数:

path:要创建的目录的名称

mode:权限。默认是0777(最大权限)

recursive:设置是否可以创建多级目录(true:可,false:不可)

context:文件句柄的环境。context是可修改流的行为的一套选项(很少用到)

下面给大家介绍php创建多级目录的两种方法,具体详情如下所示:

1使用递归的思想

function mkdirs_2($path){
if(!is_dir($path)){
mkdirs_2(dirname($path));
if(!mkdir($path, 0777)){
return false;
}
}
return true;
}
/* http://www.manongjc.com/article/1331.html */
$path2 = 'sdfs/sds/sds/s/s/sss';
var_dump(mkdirs_2($path2)); //true;

1思想主要是利用了递归,先创建dir,再创建dir/css 、作成中...}

2.再帰はスタックにpushするプロセスです、したがってまず,dir/css/js/php/ok、スタックにpushすると、最後にpopされます...他のことは言いません。

3.dirname(path)が返すのは、pathの最後のディレクトリを除いた値です、つまり最初に返されるのは: dir/css/js/php,,,2回目にdirを返します/css/js,,,最後は ./

2.直接にmkdir()を使って作成します、第3引数はtrueにしないと自動的に多層ディレクトリを作成できません

function mkdirs_1($path, $mode = 0777)
if(is_dir($path)){
return '作成不可、既にディレクトリです';
}else{
if(mkdir($path, $mode, true)) {
return '作成成功';
}else{
return '作成失敗';
}
}
}
/* http://www.manongjc.com/article/1332.html */
$path1 = 'a/b/c/d/e';
var_dump(mkdirs_1($path1)); //文字列 '作成成功' (length=12)

以上は、編集者が皆さんに紹介したPHPで多層ディレクトリを作成する2つの方法です。皆さんの助けになることを願っています。何か疑問があれば、コメント欄にお気軽にどうぞ。編集者は皆さんの質問に即座に回答します。このサイトに対する皆さんのサポートにも感謝しています!

声明:この記事の内容はインターネットから収集され、著作権者に帰属します。コンテンツはインターネットユーザーにより自発的に貢献され、アップロードされました。このウェブサイトは所有権を持ちません。人間による編集は行われていません。また、関連する法的責任を負いません。著作権に問題があると感じた場合は、メールで:notice#w までお知らせください。3codebox.com(メールを送信する際には、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認が取れた場合は、このサイトは即座に侵害される可能性のある内容を削除します。)

おすすめ