[PHP-dev 33] Zend Engine国際化パッチ

Masaki Fujimoto php-dev@php.gr.jp
Sun, 08 Jul 2001 14:18:25 +0900


ふじもとです。

この間の皆様のご意見やphp3の国際化版、mbstringモジュール等を参考にして、
新しくパッチを作りました。

http://www.studio-m.com/download/zend_multibyte.patch.gz

に置いてあります。対応phpバージョンは相変わらず4.0.6です。

(1) 使い方

今回は変更が多岐にわたったので(というほどでもないのですが)ディレクトリパッ
チになっています。

% tar zxvf php-4.0.6.tar.gz
% cd php-4.0.6
% gunzip -c ~/zend_multibyte.patch.gz | patch -p0
% ./configure ...

のようにしてmain/php_config.hを作成したら、このファイルに

#define ZEND_MULTIBYTE

の1行を追加してからmakeしてください。win32版の場合は

Zend/zend_config.w32.h

に同様の1行を追加してください。


(2) 機能

[encodingディレクティブ]
記述方法:

encoding "charset";

説明:

スクリプトファイルのエンコーディングを指定します。とりあえず

UTF-8 (UTF8)
EUC-JP (eucJP, x-euc-jp)
Shift_JIS (SJIS, x-sjis)

が指定できます(case insensitiveです)。が、Shift_JIS以外は指定してもしな
くても動作には影響を与えません。

備考:

encodingの指定に変数は使用できません。encodingディレクティブはそれ以降の
スクリプトに影響を与えます(つまり、encodingディレクティブより前のスクリ
プトの字句解析には影響しません)。

例:

<?php
encoding "Shift_JIS";

$sjis = "表";
print $s . "などの文字も正しく扱えるようになります";
?>

動作の説明:

長くなるので、とりあえずこのメールでは省略させていただきます。


(3) 既知のバグ

- phpsスクリプトによるソース表示時に、ヒアドキュメント中の文字列の一部が
  正しく表示されません。

(4) その他

バグ報告やパッチに対する意見等をかなりお待ちしています。

--
Masaki Fujimoto
fujimoto@studio.co.jp
http://www.studio-m.com/