PHP5.4:htmlspecialchars非互換仕様変更
PHP5.4.0から、htmlspecialchars関数のデフォルト文字エンコーディングがISO-8859-1(Latin-1)からUTF-8に変更されるとのこと。
≪PHP5.4のhtmlspecialcharsに非互換問題≫
http://blog.tokumaru.org/2011/11/php54htmlspecialchars.html
PHPって、結構簡単にこういった下位互換の無い変更をやってくれます。PHP5からPHP6とかいったメジャーバージョンアップならまだしも、マイナーバージョンアップで、なぜこういった事をするのか理解に苦しみます。オプションの追加とかなら理解できるけど、デフォルトの変更って場合によっては影響が大きいですよね。
上記、記事を見る限りでは、内部文字エンコーディングとしてUTF-8を使っている場合は、影響がないと読み取れるので、MyHome Portalには影響がないかもしれないけど。
MyHome Portalの場合、htmlspecialchars()を、そのままは使っていなくて、以下のような共通関数my_htmlspecialchars()を作ってそれをコールしているので、影響があるとしても、これを修正するだけで済みますが。
function my_htmlspecialchars($str) {return trim(str_replace("\", chr(0x5c), htmlspecialchars($str, ENT_QUOTES)));
}