2007年9月20日木曜日

Pear::DBは古い、これからはPear::MDB2だ

日ごろ愛用してるPear::DBですが、いつのまにか時代遅れになっていたようです。

http://itpro.nikkeibp.co.jp/article/COLUMN/20070827/280396/

今後はPear::MDB2が基本路線になっていくようです。Pear::DBでできることは、Pear::MDB2でもほぼすべてカバーできているようです。

http://www.phpied.com/db-2-mdb2/

移行するにはプログラム全部見直しが必要だし、テストも必要。面倒だなぁ。。。
でもPear::MDB2にして実行速度が速くなるのは魅力だな。と思ったんですが、

http://blog.zuzara.com/2006/09/07/112/

ほとんど変わらないみたいですね。

同じ移行コスト払うならPDOにしちゃったほうが良さそう。

でもPDOってgetOne()とかがないからちょっと面倒なんですよね。ま、それも半年くらい前に調べたことなので今はもう改善されてるのかもしれない。ちょっと調べてみよう。。

2007年9月13日木曜日

ページのメモリ使用量を調べる

javascriptを使ったページを作っていたら、
「このページのスクリプトがInternet Explorerの実行速度を遅くしています。スクリプトを実行しつづけると、コンピュータが反応しなくなる可能性があります。スクリプトを中断しますか?」
という警告メッセージが出ました。
どうやらこれは重い処理をループするなどしてメモリを大量に使うと出るメッセージのようです。
で、調べてみるとメモリ使用量を調べるアプリがありました。
Drip IE Leak Detector
http://outofhanwell.com/ieleak/index.php?title=Main_Page
こちらはFireFoxのアドオン。
Leak monitor
http://phpspot.org/blog/archives/2006/10/javascriptfiref.html
こちらのアドオンはページを閉じた時にメモリリークがあったらアラートを出してくれるというものです。インストールしても「ツール」などにメニューが出てくるわけでもなく、最初はインストールに失敗したのかと思ってしまいました。

2007年9月11日火曜日

File_Archiveでファイルを圧縮する

仕事で作っているアプリで、効率化のためにテキストファイルZIPで圧縮するようにしました。
PearのFile_Archiveでそれができます。Archive_Zipというのもあるんですが、こっちはメンテされていないみたいです。
使い方はこんな感じ。

require_once('File/Archive.php');
File_Archive::extract(
File_Archive::read("./text.txt"),
File_Archive::toArchive("text.zip", File_Archive::toOutput())
);

かなり簡単です。
なお圧縮をするにはphpを「--with-zlib」オプションでコンパイルする必要があります。

2007年9月10日月曜日

フォームのファイル参照フィールドに値を手入力すると、submitしても何も起こ らない

IEでの話です。FireFoxの場合は手入力した値は無視されます。
MSのページにこの仕様について記述がありました。
http://support.microsoft.com/kb/890981/ja
確かに、「input type="file"」のフィールドをサーバー側、もしくはJavaScriptなどでコントロールできてしまうとローカルのファイルを強制的にアップさせたりなどできちゃうので、セキュリティにかなりやばいです。
なのでこの処理については納得なんですが、submitしてもウンともスンとも言わないというのはちょっと分かりづらいですね。アラート出したりしてくれるといいんですが。

Yeti/0.01からのアクセスを遮断

webalizerを見ていたら、見慣れないUSERAGENTからの大量のアクセスがあった。
Yeti/0.01 (nhn/1noon, yetibot@naver.com, check robots.txt dai...
とある。どうやら韓国のnaver.comのロボットらしい。
韓国のサーチエンジンにインデックスされてもメリットはないし、サーバーの負荷になるだけなのでアクセスを拒否しておきました。
ちなみに「Yeti/0.01」のほかに「Yeti/0.01i」というロボットもきていました。こっちは携帯コンテンツ用かな?

2007年8月29日水曜日

YodaoBot襲来

IPアドレス「60.191.80.80」からのアクセスが大量にあったので、アクセスログを見てみたら
60.191.80.80 - - [29/Aug/2007:13:39:16 +0900] "GET /robots.txt HTTP/1.1" 200 58 "-" "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/; )"
というログが残っていた。
YadaoBot、、、ヨダオって読むのか?
サイトにアクセスしてみると、どうやら中国語のサーチエンジンのようだ。Baiduと同じく、リソースの無駄になるだけなので早速アクセス不可にしておきました。

2007年8月9日木曜日

pear5

仕事でSuSE Linux上にアプリケーションを構築することになった。
phpアプリをサーバーにアップし、pearのライブラリをインストールしようと思って、
# pear install hogehoge
を実行しようとするが、pearコマンドがない!!
ググってみたところ、SuSE環境ではpearではなくpear5というのがあるようだ。
# pear5 install hogehoge
これで使えるようです。
ひとまず
# pear5 upgrade-all
を実行したのですが、そしたらもともとあった
/usr/bin/pear5
にくわえて
/usr/bin/pear
も出てきてしまった。どっちを使えばいいのかよく分からないのですが、とりあえずいつも使ってるpearのほうを使うようにしています。今のところ不具合は出ていません。。。