PHP は階層ディレクトリ、複数レベルのディレクトリを作成します
ファイルをアップロードするには、多くの場合、さまざまな種類のファイルをさまざまなフォルダに配置する必要があります。しかし、PHP ではディレクトリは 1 つしか作成できないのですが、これは何を意味するのでしょうか?次のコードを見れば明らかになります。
コード:
mkdir("cjlsoft/download/cpp_book", 0755);
?>
コードの後作成したいフォルダ階層が存在しないためエラーとなります。最初のディレクトリ「cjlsoft」が存在しない場合、以降のディレクトリはまったく作成できないと言われているのはなぜですか。 「cjlsoft」ディレクトリは存在するが、「download」ディレクトリが存在しない場合。作成したい「cpp_book」が全然うまく作成できません! mkdir 関数は、最後のディレクトリをターゲットとして受け取ります。パス「cjlsoft/download/cpp_book」は、mkdir 関数によって、「cpp_book」として作成したディレクトリであるとみなされます。親が存在しない場合は、絶対に作成されません。
コードの実行後に次の警告が表示されます:
警告: mkdir(): No such file or directory in...
そこで、次のようなディレクトリを作成します。機能しません!したがって、このような階層ディレクトリを作成したい場合は、その親ディレクトリが存在することを確認する必要があります。そこで、ディレクトリを簡単かつ正常に作成できる関数を書きました。
関数:
function cjlsoft_mkdir($path)
{
$dirs =explode("/", $path);
$ current_dir = "";🎜>
755);
}
}
}
cjlsoft_mkdir cpp_book");
これにより、必要な階層ディレクトリを確実に作成できます。この機能の原理は、まず予想されるパスを分離することです。その後、フォルダーの数とそれらが通過したレイヤーの数がわかります。このようにして層ごとに結合します。そしてディレクトリを作成します。