web-dev-qa-db-ja.com

PHP:フォルダーを作成するためのfopen

パスが存在しない場合に新しいフォルダを作成する方法があるかどうかを知る必要があります。パスをfopen()しようとすると、NO such File or Directory exists「w」と「w +」を使用してファイルを開こうとしましたが、新しいフォルダを作成できません。 mkdir()を使用せずにそれを達成する方法はありますか?毎回mkdir()へのパスからディレクトリ名だけを抽出する必要があるためです。どんな助けでもありがたいです。ありがとう...

32
Vivek

fopenはディレクトリを作成できません。

次のようなものを使用する必要があります。

$filename = '/path/to/some/file.txt';
$dirname = dirname($filename);
if (!is_dir($dirname))
{
    mkdir($dirname, 0755, true);
}
78
qbert220

fopenはフォルダーを作成したり開いたりせず、ファイルのみを開きます。存在する場合は最初にis_dirで確認し、存在しない場合は作成する必要があります。 mkdirには再帰的な作成オプションがあります。

if (!is_dir($myDir)) {
    mkdir($myDir, 0777, true); // true for recursive create
}

ディレクトリを開いてそのコンテンツを読み取る方法を探している場合は、SPLの DirectoryIterator を確認する必要があります。

8
ChrisR

fopenを使用してフォルダーを作成することはできません。
フォルダを作成するには、mkdirを使用する必要があります

毎回繰り返さなければならない操作のために、「ユーザー定義関数」と呼ばれる言語機能があります。 Stackoverflowの回答で判断すると言うことができるように、PHPの最も知られていない機能。

3