先日、WordPressの新バージョン2.9.2がリリースされました。今回のバージョンアップは

ログインしている場合、他のユーザーによってゴミ箱に入れられた投稿を見ることができてしまうという問題が指摘されました。

の問題を解決する為のアップデートと言うことで、私のように一人で使用しているユーザーにとっては慌ててアップデートする必要もない対策です。

 私は1週間ぐらいしたらアップデートしようかと思っていたら、「WordPress 2.9.2 日本語版アップグレード時のエラー」というようなブログ記事を見つけました。(この人には申し訳ないのですが)正直、慌ててアップデートしなくてよかったと思いながらその記事を読んでいるとgzuncompress()という関数が悪さをしているようです。

 はて?この関数は何?と素朴に思い、PHPのマニュアルをチェックしてみると

圧縮された文字列を解凍する

 ほ~そんな関数があるんだ。じゃあ、圧縮する関数はというとgzcompress()です。この関数のマニュアルを見てどの位圧縮されるかと思い、サンプルを見ながらちょっと調べてみました。その詳細は以下に。

 PHPのマニュアルには下記のようなサンプルプログラムがあります。

<?php
$compressed   = gzcompress('Compress me', 9);
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?> 

このプログラムを行っても圧縮→解凍された「Compress me」が表示されるだけです。そこで、下記のようなプログラムを書いてみました。

<?php
$text = "Compress me";
$volm_b = strlen(bin2hex($text)) / 2;
$compressed   = gzcompress($text, 9);
$volm_c = strlen(bin2hex($compressed)) / 2;
echo "圧縮前:".$volm_b." 圧縮時:".$volm_c;
?> 

すると結果は

圧縮前:11 圧縮時:19

あらら?圧縮した方が大きくなってしまいました。そこで、圧縮する文字列を長くしたらどうだろう?ということで

<?php
$text = "Thomas Mackenzie alerted us to a problem where logged in users can peek at trashed posts belonging to other authors. If you have untrusted users signed up on your blog and sensitive posts in the trash, you should upgrade to 2.9.2.  As always, you can visit the Tools->Upgrade menu to upgrade.";
//  : (以下同じ)
?> 

そしたら結果は

圧縮前:292 圧縮時:195

と約2/3に圧縮されました。だから何?といわれると元も子もないのですが、こんな関数があることを初めて知りました。何かの時に役に立ちそうです(^^ゞ

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。