php初心者です。

phpでFTPを使おうとしています。

初回アップロードの際は、ディレクトリを作成します。
次はディレクトリは作成は不要です。

しかし
ftp_mkdir($ftps, "/public_html/hoge/");
と書くと、
2回目以降ディレクトリが存在する旨のエラーが出ます。

これを避けるにはどうしたらいいんでしょう?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/07/30 20:24:58
  • 終了:2008/08/06 20:25:02

回答(3件)

id:kou32rr No.1

kou32rr回答回数197ベストアンサー獲得回数82008/07/30 21:17:45

ポイント35pt

$file = "/public_html/hoge/";

if(!file_exists($file)) {

ftp_mkdir($ftps, $file);

}

ディレクトリが既に存在しているか確認すればよのでは?

http://q.hatena.ne.jp/answer(ダミー)

id:tobeoscontinue No.2

tobeoscontinue回答回数213ベストアンサー獲得回数522008/07/31 00:47:17

ポイント35pt

ftp_chdir()を使えば存在するか否かを判定できます。

(ディレクトリ位置が変わるので注意)

$dir = "public_html/hoge";
if (@ftp_chdir($ftps, $dir)) {
  echo "exist! ".$dir;
} else {
  @ftp_mkdir($ftps, $dir);
}

ftp_nlist()も使えるかなぁと思ったのですが、ディレクトリの中が空の場合も、

そのディレクトリが存在しない場合も空の配列を返すので区別できませんでした。

そこでdirname()で一つ上のディレクトリを指定することで、存在すれば

"public_html/hoge"のような配列が返ります。無ければ空の配列です。

ftp_nlist($ftps, dirname($dir))


@演算子を用いればエラー表示を抑圧できます。

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 marisanp 7 6 0 2008-08-01 10:35:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません