SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【php】あるディレクトリの中のファイル一覧を作る関数

問題

あるディレクトリの中のファイル一覧を作りたい。phpで。

directories

答え

こんな関数を作るとわかりやすいでしょうか。

//ファイル一覧作成関数
function rd($p, $x = array())
{
	$d = dir($p);
	while (false !== ($e = $d->read())) {
		if ($e != '.' && $e != '..') {
			$x[] = $d->path . '/' . $e;
			if (is_dir($d->path . '/' . $e)) {
				$x = rd($d->path . '/' . $e, $x);
			}
		}
	}
	return $x;
}

LinuxでもWindowsでも使える。

ディレクトリも隠しファイル(先頭が.)も拾ってくるので、ファイルだけ集めたかったり、隠しファイルは対象外にしたい場合は調整すること。

使用例

$files = rd('/home/www/hoge/fuga');
//→配下のファイル、ディレクトリの一覧が配列で取得できる

応用例

ファイルを集めてきて、拡張子が.htmlだったら、.phpに変える。

$files = rd('/home/www/hoge/fuga');
foreach ($files as $file) {
	if (substr($file, -5) == '.html') {
		rename($file, substr($file, 0, -5) . '.php');
	}
}

メモ

関連するメモ

コメント