PukiwikiをPHP5.4で動かす場合の注意

PHPのバージョンを5.4にアップしたところ、Pukiwikiが突然500エラーを返すようになった。

PHP5.4ではhex2bin()が関数が組込みになりpukiwikiの関数と衝突している。
そちらの書き換えをします。

lib/func.phpの311行目あたりを書き換えます。

// Inversion of bin2hex()
function hex2bin($hex_string)
{      
        // preg_match : Avoid warning : pack(): Type H: illegal hex digit ...
        // (string)   : Always treat as string (not int etc). See BugTrack2/31
        return preg_match('/^[0-9a-f]+$/i', $hex_string) ?
                pack('H*', (string)$hex_string) : $hex_string;
}

↓↓

// Inversion of bin2hex()
if (!function_exists('hex2bin')) {
        function hex2bin($hex_string)
        {
                // preg_match : Avoid warning : pack(): Type H: illegal hex  digit ...
                // (string)   : Always treat as string (not int etc). See  BugTrack2/31
                return preg_match('/^[0-9a-f]+$/i', $hex_string) ?
                        pack('H*', (string)$hex_string) : $hex_string;
        }
}
おすすめの記事