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

WBOY
リリース: 2016-07-13 10:44:03
オリジナル
1395 人が閲覧しました

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 関数はディレクトリを再帰的に作成することはできません。操作方法を見てみましょう。 コード例は次のようなものです...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!