WEBシステム開発/レンタルサーバーでPHP4からPHP5へ移行/不具合/PHP_Compat
PHPのダウンロードページ内で、
「2007年12月31日以来PHP4のサポートは中止されています。 PHP5.2にアップグレードすると考えてください。 以下でのリリースは最後のPHP4リリースです。」
っというメッセージを掲載しているとおり、PHP4からPHP5への移行を促しています。
その影響なのか?レンタルサーバー業界も無理やりPHP4からPHP5へのバージョンアップを行ところがたくさんありました。
そのあおりを受けて
PHP4を中心に開発されていたシステムがバージョンアップとともに動かなくなる事態に…
便利な機能がたくさん増えるのはいいのですが、さすがに不具合がでてシステムが動かないのは簡便してもらいたいですね。
エラーの解釈の違いはいいとして、PHP4の関数が別名になっていたり、使い方が変わっていたりすると
さすがに修正するのが大変です。
新しい関数に置き換えるのもいいと思いますが、手間無く短時間で動作させたい場合は
PearライブラリのPHP_Compatを使用するのがいいでしょう。
PHP_Compat により、古いバージョンの PHP には存在しない機能(関数や定数) が得られます。
PHP_Compat が提供する関数は、対応する PHP ネイティブの関数と互換性があるように 設計されています。つまり、ネイティブの関数と同じシグネチャを持ち、同じ値を返し、同じエラーを返します。 すべての関数は、正確性の保障のため、ユニットテストが行われています。 
PHP_Compat::loadFunction() — 関数をロードする
PHP_Compat::loadConstant() — 定数をロードする
PHP_Compat::loadVersion() —  すべてのコンポーネント、あるいは指定したバージョンの PHP までのすべてのコンポーネントをロードする 
array_change_key_case()	PHP 4.2.0
array_chunk()	PHP 4.2.0
array_combine()	PHP 5.0.0
array_diff_assoc()	PHP 4.3.0
array_diff_key()	PHP 5.0.2
array_diff_ukey()	PHP 5.0.2
array_intersect_assoc()	PHP 5.0.0
array_intersect_key()	PHP 5.0.2
array_intersect_uassoc()	PHP 5.0.0
array_intersect_ukey()	PHP 5.0.2
array_key_exists()	PHP 4.1.0
array_product()	PHP 5.1.0
array_search()	PHP 4.0.5
array_udiff()	PHP 5.0.0
array_udiff_assoc()	PHP 5.0.0
array_udiff_uassoc()	PHP 5.0.0
array_uintersect()	PHP 5.0.0
array_uintersect_assoc()	PHP 5.0.0
array_uintersect_uassoc()	PHP 5.0.0
array_walk_recursive()	PHP 5.0.0
call_user_func_array()	PHP 4.0.4
bcinvert()	PHP 5.2.0
bcpowmod()	PHP 5.0.0
clone()	PHP 5.0.0
constant()	PHP 4.0.4
convert_uudecode()	PHP 5.0.0
convert_uuencode()	PHP 5.0.0
debug_print_backtrace()	PHP 5.0.0
file_get_contents()	PHP 4.3.0
file_put_contents()	PHP 5.0.0
floatval()	PHP 4.2.0
fprintf()	PHP 5.0.0
fputcsv()	PHP 5.0.0
get_headers()	PHP 5.0.0
get_include_path()	PHP 4.3.0
html_entity_decode()	PHP 4.3.0
htmlspecialchars_decode()	PHP 5.1.0
http_build_query()	PHP 5.0.0
ibase_timefmt()	PHP 5.0.0
idate()	PHP 5.1.0
image_type_to_mime_type()	PHP 4.3.0
inet_ntop()	PHP 5.1.0
inet_pton()	PHP 5.1.0
ini_get_all()	PHP 4.2.0
is_a()	PHP 4.2.0
is_scalar()	PHP 4.0.5
md5_file()	PHP 4.2.0
mhash()	PHP 4.1.0
mime_content_type()	PHP 4.3.0
ob_clean()	PHP 4.2.0
ob_flush()	PHP 4.2.0
ob_get_clean()	PHP 4.3.0
ob_get_flush()	PHP 4.3.0
php_strip_whitespace()	PHP 5.0.0
property_exists()	PHP 5.1.0
pg_affected_rows()	PHP 4.2.0
pg_escape_bytea()	PHP 4.2.0
pg_unescape_bytea()	PHP 4.2.0
restore_include_path()	PHP 4.3.0
scandir()	PHP 5.0.0
set_include_path()	PHP 4.3.0
str_ireplace()	PHP 5.0.0
str_rot13()	PHP 4.2.0
str_shuffle()	PHP 4.3.0
str_split()	PHP 5.0.0
str_word_count()	PHP 4.3.0
stripos()	PHP 5.0.0
strpbrk()	PHP 5.0.0
strripos()	PHP 5.0.0
substr_compare()	PHP 5.0.0
time_sleep_until()	PHP 5.1.0
var_export()	PHP 4.2.0
version_compare()	PHP 4.1.0
vprintf()	PHP 4.1.0
vsprintf()	PHP 4.1.0
Pear:PHP_Compat
pear.php.net/manual/ja/package.php.php-compat.php