[PHP-users 4315] [PATCH] multibyte patch for PHP 4.1.0
Masaki Fujimoto
php-users@php.gr.jp
Sat, 15 Dec 2001 22:24:04 +0900
ふじもとです。
# cross-post で申し訳ないのですが users にも cc しています
表題の通り、PHP 4.1.0対応のマルチバイトパッチを作りました。これによりPHP
4.1.0で安全にShift_JISでスクリプトを書くことができるようになります。前回
PHP 4.0.6に対応したものを書いたときは、多分に実験的意味合いが強かったで
すが、今回はあわよくば本家にコミットできれば、と考えてちょっとだけ真面目
に作りました。動作も結構安定しているかと思います。
http://nx.dip.jp:8080/php/zend_multibyte-4.1.0.patch.gz
にあります。PHP 4でスクリプトをShift_JISで書きたい、もしくは書かなければ
ならない事情がある方は是非ご利用ください。
詳細は以下を参照して下さい。フィードバック、質問等もお待ちしています。バ
グ等を見つけられたら、是非お知らせください。
(1) コンパイル方法
/tmp/ に php-4.1.0.tar.gz と zend_multibyte-4.1.0.patch.gz があるとする
と:
% tar zxvf /tmp/php-4.1.0.tar.gz
% cd php-4.1.0
% gunzip -c /tmp/zend_multibyte-4.1.0.patch.gz | patch -p0
% ./configure [options]
として make の準備が整ったら、Zend/zend_config.h (Windows版の場合は
Zend/zend_config.w32.h)に
#define ZEND_MULTIBYTE
の1行を追加してください(場所はどこでもOKです)。configureまでいじる元気が
無かったもので...
あとは通常どおり make; make install してください。
(2) 使用方法
スクリプトのエンコーディングは encoding ディレクティブを用いて、スクリプ
トの先頭で指定します。指定できるエンコーディングは、
Shift_JIS (エイリアス:sjis, x-sjis, SHIFT-JIS)
です。他にeuc-jp等も指定できますが、その場合は特に処理は行われません(指
定するだけ無駄です)。
例:
<?php
encoding "Shift_JIS";
print "表";
$表 = "あいうえお";
print $表;
?>
制限事項は以下の通りです。
- encoding ディレクティブの引数に変数は指定できません。
- encoding ディレクティブが有効となるのは、宣言した位置以降です。従って
スクリプトの先頭で宣言する必要があります。
--
藤本 真樹
アストラザスタジオ
fujimoto@studio.co.jp
fujimoto@php.net