一度にディレクトリを作る方法 - PHPプロ!Q&A掲示板

2590

  • 0P

一度にディレクトリを作る方法

質問日時 / 2010年3月5日 16:49    回答数 / 4件

Questioner:  php_baby  このエントリーをはてなブックマークに追加 

キーワード / mkdir   

mkdir()関数を使ってディレクトリを作ることができるのを
ここ1週間くらいで知った、相変わらずの初心者です。

質問なんですが、

たとえば、

2010/03/05/

というような階層のディレクトリを、一度に作るような関数はないでしょうか?

それとも、やはり、

mkdir("2010");
chdir("2010");
mkdir("03");
chdir("03");
mkdir("05");

というようなことするのが正しいのでしょうか?

おしえてください。

また、windowsを使っているのですが、
パスを表す時、" / " と " ¥ " のどちらを使うほうがよいのでしょうか?

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01shimix少なくともchdirはしませんね。 >>CODE mkdir("20
┣A02mgngmgngPHP5 以降だったら 第三引数に recursive パラメータ
┣A03kaitau> パスを表す時、" / " と " ¥ " のどちらを使う
┗A04php_babyみなさま、いろいろと教えていただき、ありがとうござ

回答一覧

並び替え:

A01 満足
answerershimix [3月5日 17:19] (最終編集:3月5日 18:46)

少なくともchdirはしませんね。

  1. mkdir("2010");
  2. mkdir("2010/03");
  3. mkdir("2010/03/05");

と書きます。環境によっては

  1. system('mkdir -p 2010/03/05');

でもいけるかもしれません。


>また、windowsを使っているのですが、
>パスを表す時、" / " と " ¥ " のどちらを使うほうがよいのでしょうか? 

他の環境に移植したときに問題を起こしにくい書き方の方がいいと思います。


(追記@↓mgngmgngさん)
あ、本当だ>recursive。これなら楽ですね。

この意見に回答する

ツリーへ TOPへ

A02 満足
answerermgngmgng [3月5日 18:17]

PHP5 以降だったら 第三引数に recursive パラメータ追加されたので楽できますよ。
http://jp.php.net/mkdir

  1. <?php
  2. mkdir('./2010/03/05/'0700true);

この意見に回答する

ツリーへ TOPへ

A03 満足
answererkaitau [3月5日 20:45]

> パスを表す時、" / " と " ¥ " のどちらを使うほうがよいのでしょうか?
DIRECTORY_SEPARATOR というPHP内部で定義される定数を使えばOSに依存しないでしょう。
# まぁ、PHPの関数で処理する場合は、/ でとりあえずやっておけば
  だいたい大丈夫なんですけどね。

http://jp2.php.net/manual/ja/reserved.constants.php
知らないと損する定数がちらほらあります。


ところで、linux のmkdir -p は、私の環境だと、
パーミッションを一緒に指定しても、途中作った親ディレクトリには
適用されないんですよね。phpのmkdirは大丈夫そうですが。

この意見に回答する

ツリーへ TOPへ

A04
answererphp_baby [3月11日 16:41]

みなさま、いろいろと教えていただき、ありがとうございます。

phpのバージョンが5以降なので、
mangmangさんに教えていただいた方法を利用します。

それから、"/"と"\"についてですが、
あまり難しく考えることが苦手なので、とりあえず、"/"で統一しようかなと思います。
ありがとうございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)