- [Perl]Module::Buildを使ってると勝手にshebangが書き換わる
- [その他]直ったかも?!→Re: Googleカレンダーの「毎日の予定リスト」通知メールが止まらない
- [その他]20歳になりました!
- [Shell]lessでタブ文字を表示する
- [Emacs]ミニバッファの邪魔な履歴を削除する
- [Emacs]Emacsのiswitchbで、普段は*...*を完全無視して必要なときだけ出す設定
- [Emacs][Thunderbird]コマンドラインからMessage-IDを指定してメールを開く方法。それをOrgMode(Emacs)からも開けるようにする。
- [ソフトウェア][Perl]tiarraのSystem::SendMessage(ControlPort経由)のログをLog::Channel経由で記録する
- [ソフトウェア][Perl]tiarraのSystem::SendMessage(ControlPort経由)でnick宛に送信するパッチ
- [開発]GNU makeのMakefileに、シェルスクリプトを自然に書くたった一つの方法
2010年12月27日
■[PHP]PHPでディレクトリ一覧を取得するスマートではない方法
あるディレクトリに存在するディレクトリ一覧を取得する例。
<?php $dirs = array(); if ($dh = opendir($dirName)) { while ($entry = readdir($dh)) { if (is_dir($entry) && $entry != "." && $entry != ".." ) { array_push($dirs, $entry); } } closedir($dh); }
こんなんアホらしくて書いてられん。。。
カレントディレクトリならこれでOK。
<?php $dirs = array_slice(array_filter(scandir('.', 0), is_dir), 2);
さて、$dirNameに対応するか。
<?php $dirs = array_slice(array_filter(scandir($dirName, 0), is_dir), 2);
と、これが全くダメ。is_dirがfalse返してくる。
scandirがエントリ名だけ返してくるらしく、CWDから見たらそんなエントリは無いってことになってしまう。
そしてCWDからの相対パスを返してくれるオプションがねぇ。なんなんだよー。perlのFile::Findぐらい融通効かせてくれ。
とりあえずこんなんで行けるっちゃあ行ける。
<?php $cwd = getcwd(); chdir($dirName); $dirs = array_slice(array_filter(scandir(".", 0), is_dir), 2); chdir($cwd);
けど、chdirしたくなかったので、
<?php $dirs = (array_slice(array_filter(scandir($dirName, 0), create_function('$entry', 'return is_dir("' . $dirName . '/$entry");')), 2); /* $dirName = '...'; $dirs = array_slice(array_filter(scandir($dirName, 0), function($entry){return is_dir("$dirName/$entry");}), 2); って書けないのもどうかと思うよ!! →なんと!function($entry) use ($dirName)って書くっぽい! */
って・・・お寒い感じ。。。もうやだこの言語・・・。
トラックバック - http://d.hatena.ne.jp/holidays-l/20101227/p1
リンク元
- 7 http://www.google.co.jp/search?q=PHP+ディレクトリ一覧取得&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 6 http://www.facebook.com/plugins/like.php?channel_url=http://d.hatena.ne.jp/holidays-l/20101227/p1?fb_xd_fragment#?=&cb=f1c2e35b1658f7d&relation=parent.parent&transport=fragment&extended_social_context=false&href=http:/%
- 6 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLS_jaJP402JP403&q=cpan+アンインストール
- 6 http://www.wikiwix.com/
- 5 http://www.google.co.jp/url?sa=t&source=web&cd=11&ved=0CBgQFjAAOAo&url=http://d.hatena.ne.jp/holidays-l/20101227/p1&rct=j&q=PHP ディレクトリ一覧&ei=IXRDTsjaHsfViALm3OjbAg&usg=AFQjCNFL-D
- 4 http://blog.bitcomet.com/post/265404/
- 4 http://ironman.enlightenedperl.org/
- 4 http://www.box.net/shared/1ab2uhvohp
- 4 http://www.box.net/shared/350roxl4z0
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=php scandir&source=web&cd=22&ved=0CCoQFjABOBQ&url=http://d.hatena.ne.jp/holidays-l/20101227/p1&ei=gjvgTry-D6fMmAXzxLmSBQ&usg=AFQjCNFL-D0SuYJSNwlIGixvPUplYgCl6Q
