2018年08月01日
Docker for Mac を使って WordPress の...
2018年07月29日
Docker for Mac のインストール
2018年07月08日
Docker 便利コマンドあれこれ
2018年07月08日
オライリーの Docker 本(Docker Up &...
2018年07月05日
iPad mini 2 を購入しました
2018年07月04日
Docker で Jenkins するときのあれこれ

HOME > カテゴリ(PHP)の記事

PHP 4で readdir() を使ってファイル(ディレクトリ)を読み込んでみた



あることを試すために、ローカル保存してあるファイルを PHP から読み込んでみました。

PHP ファイル内から、include() とかじゃなくてディレクトリの一覧を取得したり、 ファイルの一覧を取得したりする方法です。

この記事では readdir() でファイルを読み込んでいますが、PHP 5.x な人は、scandir() を使った方が良いみたいです。

関連記事:PHP5 で scandir() を使ってファイル(ディレクトリ)を読み込んでみた

PHP 4.x な人は、この記事通り readdir() を使ってみてください。

手順としては、

  1. ディレクトリハンドラを作成( opendir()関数 )
  2. ハンドラをループで回してファイル(ディレクトリ)を取得( readdir()関数 )
  3. それぞれのファイル(ディレクトリ)に対する処理
  4. ハンドラを閉じる( closedir()関数 )

と、いたって単純。


これだけ。

注意点としては、ファイル/ディレクトリを取得する readdir() の WHILE 文で、

while( $file_name = readdir( $files ) ) {
  -- 処理する内容 --
}

とループを回すのはダメなこと。ディレクトリ名が「0(ゼロ)」とかだった場合に、 FALSE と判定されちゃうからちゃんと動かない。

なので明示的に、

while( false !== ($file_name = readdir( $files ) ) ) {
  -- 処理する内容 --
}

と、真偽判定しましょう。

参考:PHP: opendir – Manual
参考:PHP: readdir – Manual
参考:PHP: closedir – Manual

ちなみに、PHP5 では、scandir() という同じような機能を持った関数が使えます。使い方によっては、scandir() の方が便利かもしれません。

関連記事:PHP5 で scandir() を使ってファイル(ディレクトリ)を読み込んでみた


順番に処理をする

readdir() の読み込み順序はバラバラです。例えばファイルに連番が付いていて、順序通りにファイル処理をしたい場合は、一旦配列に格納して、配列をソートしてから処理する必用があります。


参考:PHP: 配列のソート – Manual

でわでわ。





この記事にコメントする





Copyright © 2012 - 2013 MacBook Air とWordPressでこうなった All rights reserved
Designed by Theme Junkie. Powered by WordPress.