ホームページ  >  記事  >  バックエンド開発  >  PHP の mkdir 関数はディレクトリ (フォルダー) を再帰的に作成します_PHP チュートリアル

PHP の mkdir 関数はディレクトリ (フォルダー) を再帰的に作成します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:44:031395ブラウズ

PHP では、mkdir 関数はディレクトリを再帰的に作成することはできません。操作メソッドを見てみましょう。

コードは次のとおりです コードをコピー

/**
 * ディレクトリを作成し、存在するか作成された場合は BOOL(TRUE) を返します。
 *
 * @param $path パス名
 * @return bool
 */
関数 rmkdir($path, $mode = 0755) {
$path = rtrim(preg_replace(array("/\/", "//{2,}/"), "/", $path), "/");
$e =explode("/", ltrim($path, "/"));
If(substr($path, 0, 1) == "/") {
$e[0] = "/".$e[0];
}
$c = カウント($e);
$cp = $e[0];
for($i = 1; $i If(!is_dir($cp) && !@mkdir($cp, $mode)) {
false を返す;
}
$cp .= "/".$e[$i];
}
@mkdir($path, $mode) を返します;
}

?>

例 2

どういうわけか、再帰バージョンの mkdir が Mac 上で動作しませんでした。回避策はリストされています

以下も私にはうまくいかなかったので、私の解決策は次のとおりです:

コードは次のとおりです コードをコピー

function mkdir_r($dirName, $rights=0777){
$dirs =explode('/', $dirName);
$dir='';
foreach ($dirs を $part として) {
$dir.=$part.'/';
If (!is_dir($dir) && strlen($dir)>0)
mkdir($dir, $rights);
}
}
?>

テスト済みで動作します ;)


例 3

コードは次のとおりです コードをコピー

関数 mkdirs($dir)

{

if(!is_dir($dir))

if(!mkdirs(dirname($dir))){

return false;

}

if(!mkdir($dir,0777)){

return false;

}

}

true を返す;

}

関数rmdirs($dir)

{

$d = dir($dir);

while (false !== ($child = $d->read())){

if($child != '.' && $child != '..'){

if(is_dir($dir.'/'.$child))

rmdirs($dir.'/'.$child);

else unlink($dir.'/'.$child);

}

}

$d->close();

rmdir($dir);

}

ディレクトリを作成する 3 つの関数にはそれぞれ利点があります。ここでは 1 つずつテストしていませんが、2 つ目の関数だけを使用しました。

http://www.bkjia.com/PHPjc/633126.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/633126.html技術記事 PHP では、mkdir 関数はディレクトリを再帰的に作成することはできません。操作方法を見てみましょう。 コード例は次のようなものです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。