ホームページ  >  記事  >  バックエンド開発  >  PHP は反復的かつ再帰的なメソッドを使用してカスケード ディレクトリを作成します (学習のために、開発中に mkdir('./a/b/c/d/e',0777,true) を作成する必要があります_PHP チュートリアル

PHP は反復的かつ再帰的なメソッドを使用してカスケード ディレクトリを作成します (学習のために、開発中に mkdir('./a/b/c/d/e',0777,true) を作成する必要があります_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:10:151267ブラウズ

[php]

/*
反復法を使用してディレクトリを再帰的に作成する
実際、PHP5.0.0 以降では、mkdir はすでにディレクトリを再帰的に作成できます。
ここで重要なのは、反復を自分で学習することなので、カスケード ディレクトリを作成することから始めました。
開発中は、mkdir('./a/b/c/d/e',0777,true); と記述する必要があります。
公式説明:
PHP では再帰関数を呼び出すことができます。
ただし、100 ~ 200 レベルを超える再帰的な関数/メソッド呼び出しは避けてください。
スタックがクラッシュして現在のスクリプトが終了する可能性があるためです。
*/
関数 it_mk_dir($path){
//作業作成ディレクトリを必要とするタスクを保存する配列を定義します
$arr = 配列();
//作成するディレクトリが存在しない場合は、追加するタスクがあることを意味します
while(!is_dir($path)){
array_unshift($arr,$path);
//タスクを追加し、親ディレクトリを取得します
$path = ディレクトリ名($path);
}
//タスクがない場合(つまり、作成する必要のあるディレクトリがすでに存在する場合)
if(empty($arr)){
true を返します
}
//それ以外の場合はタスクの実行を開始します
foreach($arr as $k => $v){
//上記の array_unshift プッシュメソッドを使用すると、次のように直接呼び出すことができます
mkdir($v) ? print(''.$v.' ディレクトリの作成に成功しました!
'):print('作成に失敗しました ->'.$v.'
');
}
true を返します
}
[php]
/*
再帰的メソッドの作成
*/
関数 mk_dir($path){
if(is_dir($path)){
true を返します
}
//親ディレクトリが存在するか、mkdir を呼び出す前に作成する必要があります
is_dir(dirname($path)) || mk_dir(dirname($path)) : false;
}
it_mk_dir('./a/b/c/d/e/f/g');
http://www.bkjia.com/PHPjc/477541.html
www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/477541.html技術記事 [php] ?php /* 反復メソッドを使用してディレクトリを再帰的に作成します。実際、PHP5.0.0 以降、mkdir はすでにディレクトリを再帰的に作成できます。 ここで重要なのは、反復を自分で学習することなので、カスケード ディレクトリを作成することから始めます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。