zaininnari - php/歴史

PHP本体

PHP 6 関連

2010-03-28-エンコーディングの指定がなかった場合の処理がUTF-8で処理されるようになりました。

2010-03-04-PHP 5.3.2

  • ReflectionMethod::setAccessible 実装
    • PHP 5.3.1までは、ReflectionProperty::setAccessible のみ可能でした。
  • crypt() で SHA-256 と SHA-512 のサポート

参考: http://d.hatena.ne.jp/t_komura/20100307/1267969652

PHP5.2系 全般

PHP 5.3.2 / PHP 5.2.12

  • htmlspecialchars()の挙動が変化
  • mb_convert_encoding() が UTF-16 の BOM 付き Little Endian の文字列を正しく変換できない問題の修正
  • mb_detect_encoding() の第3引数(strict)を有効にすると、文字エンコーディングの判定が厳格になる
詳細は、以下のブログが参考になります。
http://d.hatena.ne.jp/t_komura/20091220/1261305551

PHP 5.2.9


PHP本体以外

libxml

LIBXML_DOTTED_VERSION が 2.7.4 未満では、
XMLを扱う上で、予期しない挙動がありました。
if (!extension_loaded('libxml')) {
	$m['libxml']['error'] = 'do not load extension \'libxml\'';
	$m['libxml']['version'] = 'nothing';
} else {
	$m['libxml']['version'] = LIBXML_DOTTED_VERSION;
	//x:2.6.19:query method invaid
	//2.7.0-2.7.3:実体参照が削除される不具合.「<」「>」「&」が削除される
	if(version_compare(LIBXML_DOTTED_VERSION, '2.7.4', '<')) {
		$m['libxml']['error'] = "version : 2.6.19あたり : query メソッドの挙動が変<br />"
			. "2.7.0-2.7.3:実体参照が削除される不具合.「<」「>」「&」が削除される<br />"
			. "「libxml」のアップデートをおすすめします。";
	} else {
		$m['libxml']['error'] = 'libxml2-2.7.4以上が必要でした。';
	}
}