« G弾劾凰 | Main | マッハGoGoGoとサイバーフォミュラSAGA »

PHP

Juan's Hentai Art shop用に、画像をディレクトリに追加するだけでサムネール一覧とクリックによる画像本体表示を実現するPHPスクリプトを作ってるのだが、ディレクトリの中のサムネール一覧を取得するところで、なぜかドットファイルを拾ってしまう。正確には、'.'と'..'はよけてくれるのだけど、'.DS Store'を画像と一緒にリストアップしてしまうのだ。あ、.DS Stroeってのは、MacOS XのFinderがファイル情報を納めるために使う隠しファイル(らしい)で、適当にFinderで作業しているといつのまにかディレクトリの中に作られているという代物。sitecopyでこいつを送らないように設定しているので、サイトに送る段階では問題にならないのだけど、ローカルで動作チェックをしていると引っ掛かる。なんでだろう、と思って良く見ると。


while($file=readdir($dir)){
if (!ereg($file,"^\.")){
$flist[]=$file;
}
}

eregの引数が逆だよ!!
この場合、$fileとして渡されたファイル名を正規表現としてチェックしてしまっていたのだな。だから'.'はなんでもマッチの記号として結果がtrueになると。むはー、バカっぽーい。

while($file=readdir($dir)){
	if (ereg("^[^\.]",$file)){
		$flist[]=$file;
	}
}
に書き換えて解決。ついでにifの直下で!使うのではなく、正規表現の中で除外の[^]を使う方がスマートかな。

|

« G弾劾凰 | Main | マッハGoGoGoとサイバーフォミュラSAGA »

「パソコン・インターネット」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/10254/53295

Listed below are links to weblogs that reference PHP:

« G弾劾凰 | Main | マッハGoGoGoとサイバーフォミュラSAGA »