不眠症ここに極まれり?
二日間寝てません。
リニューアル作業にPHPに夢中になってしまったのがまずいのか、単に眠れないだけなのか…。仕事でもないのになんかアホですね、自分
というわけで、PHP仕様に現行の本サイトを移行する作業ほぼ終わりました。
後はCGI系のスキン確認かなあ…
PHPは滅茶楽ですね。Perlより分かりやすいし(これはCライクだから)。
幾つか関数にして、部品作って、後はまんま出力するだけでOKなので、非常に記述が楽です。フレームがアクセサビリティの観点から非推奨になって、ブロックへ移行してる中で、これは流行るわけだよなあ、と思いました。
だってブロックでページ書くと、全部のページに共通ブロックを書くのが面倒になってくるけど、PHPで書いちゃえば、その面倒が省けます。楽だ~。
なんかいろいろ弄りたくなるですね、これは
以前(PHP4出始めの頃)に買ったリファレンスを参照しながら、ざっとスクリプトを書いたですが、ひとつ未解決の問題があったです。
マルチバイト言語処理関連の関数が動かない…。
これはサーバ側のphp.iniの問題なのか、私のスクリプトが悪いのか。
いわゆる「mb_」関連の文字列処理関数が動作しないのですね。
マルチバイトでの処理をしてくれないので、きちんと日本語交じりのタグが正常に出力できない。
「mb_strpos」なんですが、検索文字列をマルチバイトで処理してくれない…。文字コードはEUC-JPで、改行コードもLFにしたのに(改行コード入ってないから関係ないけど)、駄目なんですねえ。
やりたいのは、「mb_strpos」で文字列の位置を検索して、その位置に別の文字列を加えてやる、ということなんですけどね。
中に日本語が入ってると文字化けちゃう。日本語入ってないと、正常に処理できるんだけどなあ…。検知位置が文字の途中になっちゃってるんですよね。なので、当然文字化けちゃう。
文字コード指定とかも加えてみたんですけど、駄目。
後は「mb_」関連を定義してるファイルをデフォルトの環境でインクルードしてないって線と、PHPのバージョンが4.0以前って線。
こちらは両方とも調査してないので(日本語抜いたタグにすればOKだから)、未解決のままです。
phpinfo()して調べないとですね。
それから、スクリプト書いていて感じたのは、「EUC」と「UTF-8」オンリーって面倒、ということ。
日本語のファイルって、大抵SHIFT-JISになってるし、CGIもjcode.plがあるから、SHIFT-JIS指定ってのが多いので、そっち系を使う場合は面倒です。
jcode.phpもあるけど、インクルードして変換も面倒。
phpからの出力そのものをSHIFT-JISにして、逃れる方法がベストなのかなあ…
この辺は、小手先でごまかし、でやってるけど。
今後、どうしようか。
時代は「UTF-8」だし、そっちに行くしかないのかあ。
(今出回ってるフリーのCGIでPerlで書かれてるし、DOS環境下でのデフォルトのファイルになってることが多いので、SHIFT-JISでCR+LFファイルな処理なんですよね。サーバはEUCでLFなのになあ…。jcode.plがあるからですよね~)