ディレクトリ内の画像を再帰的に表示してみた。

シェアする

ふと、このBLOG内にどんな画像が入ってるか一覧で見たくなったので作ってみた。サイドメニューの 「image list」から見れます。ただし、3年分全部いっぺんに表示するのでめちゃんこ重いです。お気をつけくだしあ。

<?php

$imgDir = "./img";

echo $imgDir."<br>n";
dirFileList($imgDir);

function dirFileList($dir) {
	if ($dirHandle = opendir($dir)) {
		while (false !== ($fileName = readdir($dirHandle))) {
			if ($fileName != '.' && $fileName != '..') {
				$filePath = $dir."/".$fileName;
				if (preg_match( "/^.*.(svg|png|jpg|jpeg|gif|bmp)$/i",$fileName)){
					$size = imageSize($filePath);
					echo "<a href="$filePath">";
					echo "<img src="$filePath"";
					echo "height="".$size['y']."" width="".$size['x']."">";
					echo "</a>n";
				}
				if (is_dir($filePath)) {
					echo "dir: $filePath<br />";
					dirFileList($filePath);
				}
			}
		}
		closedir($dirHandle);
	}
}

function imageSize($filePath) {
	$arr = getimagesize($filePath);

	if ($arr[0] >= $arr[1] && $arr[0] > 320) {
		$ar = $arr[1] / $arr[0];
		$x = 320;
		$y = 320 * $ar;
	} else if ($arr[1] >= $arr[0] && $arr[1] > 320)) {
		$ar = $arr[0] / $arr[1];
		$x = 320 * $ar;
		$y = 320;
	} else {
		$x = $arr[0];
		$y = $arr[1];
	}
	return array('x'=>$x,'y'=>$y);
}
?>

lolipop で GD 使えて助かった。並び順も上限枚数も考慮してないので使い勝手がえらい悪いが、そのうち直す。

しかしゲームの画像多いなあ

Sponsored Link

シェアする

フォローする