またしても iconv ではまる

Zend_Validate_StringLength を使ったら、処理が止まった。
どこが原因か追っていたら、iconv_strlen() を使用している箇所があって、そこで応答が返ってこなくなって、ブラウザがサーバが混んでいるから通信できないとエラーが出た。


iconv は この前の PHP5.2.6 で shared で入れて、phpinfo() でもちゃんと使用出来る事を確認した。
で、iconv_get_encode('all') としたらちゃんと設定した値が返ってくるけど、
iconv_strlen('hoge') では応答が返ってこない。


'--with-iconv=shared,/opt/local' \ にしてみても結果は一緒。
shared を外してコンパイルすると、iconv の例のエラーが出るので、/usr/include/iconv.h を /opt/local/include/iconv.h へのシンボリックリンクにしてみたり、
あ~ゆ~どりま~ | さむーい。 こちらのサイトに書かれているように、
make ZEND_EXTRA_LIBS='-liconv' として コンパイルしてみても、結局は make でこける。


しょうがないので、/ext/iconv/iconv.c の iconv_open、iconv_close をそれぞれ、libiconv_open、libiconv_close に変更して、再コンパイル & インストールするとインストールできた。
で、iconv_strlen('hoge') でちゃんと int(4) と応答が返ってきた。


うーむ、なぜ shared ではダメなんだろう。。。
Leopard 特有の問題っぽいけど。。。