[PHP-dev 933]拡張モジュールの作り方について

IWAMA Kazuhiko iwama @ ymc.ne.jp
2003年 12月 2日 (火) 23:46:31 JST


 はじめまして、岩間といいます。

 日本語JPドメインで使われる Punycode を使いたくて、idnkit
を呼び出す拡張モジュールを作ってみました。

 とりあえずは期待通りに動いて入るようなのですが、拡張モジュ
ールとしておかしなところがないか不安なのですが、アドバイスを
もらえないでしょうか?


 php-4.3.3 の ext_skel の出力するコードから作ったものを、

    http://www.sera.desuyo.net/idnkit/php-4.3.3-idnkit-20031202.tar.gz

に置いています。このほかに、JPNIC の配布している idnkit が必
要になりますので、

    http://www.nic.ad.jp/ja/idn/idnkit/download/

から idnkit-1.0 のソースをダウンロードしてインストールしてく
ださい。
 モジュール自体のコンパイルは、php-4.3.3-idnkit-20031202.tar.gz
を php の ext 内に展開して buildconf すると、configure で
--with-idnkit が指定できるようになります。

 無事コンパイルが成功すると、idn_encodename と idn_decodename
が使えるようになります(UTF-8 <=> Punycode の変換のみになり
ます)。

 初めての拡張モジュール作りだったんで、最低限必要な関数のみ
の実装ですが、

    $HTTP_HOST = mb_convert_encoding(
        idn_decodename( $_SERVER["HTTP_HOST"] ), "EUC-JP", "UTF-8");

みたいな感じで使えば、日本語JPドメインのホスト名を EUC-JP
で得ることができますので、まぁ、使えなくはないと思います。


 単純に idnkit のAPIを呼び出しているだけなのですが、マク
ロだらけのソースを見よう見まねで作ったのでおかしなところもあ
るかと思いますが、よろしくお願いします。

-- 
@YMC Corporation   / URL: http://www.ymc.ne.jp/
   Kazuhiko Iwama / Tel: 0832-28-1193  Fax: 0832-28-1194
_________________/ Mail: iwama @ ymc.ne.jp



PHP-dev メーリングリストの案内