今回は,先月リリースされたPHP4およびPHP5のバグ修正版PHP4.3.9およびPHP5.0.2における変更点を紹介する。また,Wikiアプリケーション構築用パッケージText_Wikiと,高機能なデバッグ用ツールXdebugについて紹介する。

PHPの開発状況

 PHP5が正式リリースされてから3カ月ほどが経過した。PHP 5.0系(最新版はPHP5.0.2)は安定版として主にバグ修正のみが行われるバージョンとなっており,開発の主体はPHP 5.1系に移行している。PHP 5.1系では前回紹介したPDO等さらなる機能強化が行われる予定である。

 PHP 5.0系については,ほぼ1~2ヶ月に一回のペースでマイナー・バージョンアップが行われている。旧バージョンにあたるPHP 4.3系(最新版はPHP 4.3.9)のバグ修正作業も継続されており,こちらも,ほぼ同様なペースでバグ修正を目的としたマイナー・バージョンアップが行われている。
 先月相次いでリリースされたPHP 5.0.2とPHP 4.3.9における変更点について以下に紹介する。

PHP 5.0系:不具合を修正したPHP 5.0.2リリースされる

 8月12日にリリースされたPHP 5.0.1におけるバグを修正したPHP 5.0.2が9月23日にリリースされた。このバージョンでは,PHP 5.0.1リリース以降にみつかった30件のバグが修正されている。これらはいずれも深刻なバグではないが,すべてのPHP5ユーザーは,アップグレードすることが推奨されている。PHP 5.0.1からの変更点の詳細については,ChangeLog(http://www.php.net/ChangeLog-5.php#5.0.2)を参照していただきたい。
 
 主な修正点を以下に紹介する。

  • GET/POST/Cookie入力処理における問題が修正された。この問題は,ユーザーが意図的に開き括弧で終わるパラメータ名を渡すことで,システムに関する情報が外部にもれてしまう可能性があるというものである。本件はセキュリティ上のぜい弱性に関するものであるが,深刻度は比較的低いとされている。なお,同様の修正はPHP 4.3.9においても行われている。詳細は,Senunia Advisories
    (http://secunia.com/advisories/12560/)を参照されたい。

    使用されるOS
    Win32 \r\n
    MacOSX \r
    それ以外 \n
  • PHP定数PHP_EOLが追加された。この定数は改行文字を表し,使用されるOS環境ごとに表のように定義される。改行文字はOSの種類により異なるため,複数のOSをサポートするために従来はファイル入出力処理などで場合分けが必要な場合があったが,この定数を使用することで処理の簡略化が可能となる。

  • sort()関数にカレントのロケールに基づき文字列ソートを行うオプションSORT_LOCALE_STRINGが追加された。標準Cライブラリに含まれるstrcoll()関数により比較を行うものである。国際化プログラミングを行う際には有用と思われる。ただし,strcoll()関数の動作は使用されるライブラリに依存するため,注意が必要である。

  • Perl互換正規表現関数PCREにおいてメモリー消費量が過大となることを防止するため,コンパイル済みの正規表現式のキャッシュを定期的に消去するようになった。

    PHP 4.3系:不具合を修正したPHP 4.3.9リリースされる

     PHP 4.3系においても,引き続きバグ修正作業が行われている。8月22日にPHP 4.3.x系の最新版にあたるPHP 4.3.9がリリースされた。このバージョンでは,PHP 4.3.8に対して50件以上の修正が行われている。修正されたバグは深刻なものではないが,より安定した最新版への更新が推奨される。変更点の詳細については,ChangeLog(http://www.php.net/ChangeLog-4.php#4.3.9)を参照していただきたい。

     バグ修正以外の主な変更点を以下に示す。

  • イメージ処理を行う拡張モジュールGDにおいてGIFイメージの書き出しが再びサポートされた。これは,関連特許が期限切れで失効したことによるものである。

  • 付属するUNIXおよびWindows用のインストールドキュメントが書き直され,分かりやすくなった。

     次に,PEAR/PECL関連の最近の話題として,PEARのパッケージText_Wikiを紹介する。