2007-09-01から1ヶ月間の記事一覧

unicharとdcomplexをマイナーアップデート

php_unichar-0.1.1.tgz php_dcomplex-0.1.2.tgz php_unichar-0.1.1 UTF-8文字列の各文字のコードポイントをずらす関数 unistr_rotate() を追加。 例:

PHP5で配列のコピー時の挙動も変わっていた件

PHP

オブジェクトと同じくHashTableの複製はせずにリファレンスカウンタを増やすだけになってたんですね。 ちょっとテストしてみた結果はこうなりました。スタイルシートのせいで表が見にくいのは勘弁してください。 個人的に結果2b (PHP5) での$c、結果3a (PHP4…

Ioバインディングを朝ハック

php_iovm-070922.tgz寝起きで改良。 IoObject→zvalの変換ができるようにして、IoState::doCString()の戻り値を取得できるようにしました。対応する型はこれだけです。他の型は文字列で <IoObject:name:address> となります。 Io PHP nil null true true false false Number double S</ioobject:name:address>…

エクステンションでforeachを簡単に書くには

PHP

PHPCon2007でも少し話したことですが、PHPエクステンションを書くとき、PHPのforeachに相当することをしようと思うとちょっと面倒です。 そこで、IoのLIST_FOREACH/PHASH_FOREACHを真似してforeachを簡単に書けるマクロを作ってみました。 aにハッシュテーブ…

IiP - Io in PHP

php_iovm-070920.tgz ちょーシンプルなIoバインディング。息抜きがてらにさくっと作ってみました。 IoStateオブジェクトと、引数として与えられたコードを実行するdoCStringメソッドだけしかありません。 本格的に作り込む時間がないので、しばらくはこのま…

朱雀八段になりました

今月の頭に麻雀格闘倶楽部DSを購入して細々とやりつづけた結果、ついに朱雀八段まで昇格しました。黄龍まであと少しです。 来月〜再来月にでも行われるであろう、ITEMAN先生&kumatch先生との対戦に備えて勘を養っておかねば。 噂によると関西のPHP/Piece系イ…

PythonでICO作成

ひさびさのPythonネタです。PILハンドブックによるとではICOは読み取り専用らしいので、BMPで書き出した後ヘッダを編集することでICOが作成できるようにしてみました。 PILはよく知らないので24ビットのBMPが作成されるものと決め打ちでやっています。 また…

秋のPECLまつり

php_qr-0.3.1.tgz php_yaml-0.1.1.tgz php_senna-0.1.0.tgz -> php_senna-0.1.1.tgz (SenRecordsのイテレータとしてのふるまいを修正) php_unichar-0.1.0.tgz php_dcomplex-0.1.0.tgz -> php_dcomplex-0.1.1.tgz (テストケースを追加、他少々) php_opendogs-…

オレオレパッチふたたび

PHP

CLIで常用でない (php.iniで読み込むようにしていない) エクステンションをちょっと使ってみるのに便利なパッチ。 コマンドラインオプションで --dl foo とすることで -d extension=foo.so や dl("foo.so"); の代用ができます。 僕以外にこれで嬉しい人がい…

GDで作成した画像をICO形式で出力する

php_gdextra-0.2.0.tgz Windows ICON (.ico) ファイルフォーマットを調べてみたところ、ヘッダが少し異なるのとマスクデータがあるだけでアイコン本体はBMPだったので、先日のブツにICO形式で書き出す関数を追加してみました。 また、BMP出力でも従来の8,24…

GDで作成した画像をBMP形式で出力する

php_gdextra-0.1.0.tgz GDエクステンションと連携して使う、画像処理のための新作エクステンションです。 表題の機能のほか、ImageMagickを使って読み込んだ画像をGDの画像リソースに変換して返す機能もあります。 PHP5なら素直にimagickエクステンションを…

php_opendogs 0.5.0 Released

php_opendogs-0.5.0.tgz 変更点 数値文字参照とXHTML 1.0で定義されている文字実体参照をUTF-8としてデコードする関数 string od_unistr_decode_entity(string str[, int flags]) を追加 第一引数はデコード対称の文字列、第二引数はデコードオプションで下…

php_yaml 0.1.0 Released

php_yaml-0.1.0.tgz 変更点 デフォルトで全てのYAMLドキュメントをパースしていたのを、最初のYAMLドキュメントだけをパースするように仕様変更 オブジェクトが複合キーに指定された場合、serialize()する前に__toString()を試みるようにした エイリアスをリ…

php_qr 0.3.0 Released

libqr-0.3.0.tgz php_qr-0.3.0.tgz libqrの変更点 QRCodeオブジェクトを複製する関数 QRCode *qrClone(const QRCode *qr, int *errcode) を追加 QRStructuredオブジェクトを複製する関数 QRStructured *qrsClone(const QRStructured *st, int *errcode) を追…

PHPカンファレンス2007プチレポート

PHP

もうあれから6日が経過しようというところですが、遅ればせながら。 PHPカンファレンス2007に参加、「今日からはじめるPHPエクステンション」という演題で喋ってきました。 久々のプレゼンということもあり、すごく緊張していました。もっと滑舌よく、手際よ…