結局Shift_JISでPHPのプログラムは書いてもいいのか

2007/11/03 | マイPHPメモ

PHPのMLを見て再燃。シフトJISでPHPのプログラムを書いてもいいのか。

自分としては以前の記憶で「–enable-zend-multibyteが有効でないときはNG」ということでスクリプトをシフトJISで書くことはなかった。しかしPHP-MLを見て疑問が再燃。「PHP-users 32796」で大丈夫との発言がある。そのメールに書かれたPHP-devのスレッドを読んでは見たのだが・・・一回見ただけでは理解できなかっった・・・。
http://ml.php.gr.jp/pipermail/php-dev/2003-May/thread.html#761

何をもって「使えるか」、というのも難しい議論だ。先のスレッドで「substr関数でマルチバイト文字はバイト数を意識しないと使えない」というのがあったが、それと「シフトJISのPHPスクリプト中で能や表なんて文字がNG」という議論とはちょっと違うような気がする。それとも雲の上の人たちが考えていることというのは、一般プログラマの思考回路とはレベルが違うのだろうか・・・。

ちなみに今、使っているサーバでPHP4.3.2な環境がある。CentOS4.2とかならこの環境の人もいるんじゃないか?。セキュリティアップデートかけているだけならPHPのバージョンはかわらないから。

上記の環境でhtaccessでinternal_encoding、script_encodingにSJISを設定して以下のスクリプトを実行した(スクリプトはSJISで保存)。
print(“表”);

結果はエラーだった。やっぱ使えないじゃん。結局やっぱり「zend multibyte」が有効なんじゃないとダメなんじゃないの〜?。「zend multibyte」が有効なレンタルサーバがどれほどあるっていうんだぁ?。

これ、誰か詳しく解説してほしい。
php.iniのマルチバイト関連の設定も含めて、どのバージョンからどのように設定したらSJISが使えるようになるのか。

まぁ、自分はUTF-8で書くけどね。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net