Fatal error: Cannot redeclare hex2bin() in C:\xampp\htdocs\pukiwiki\lib\func.php on line 317

なんか半熟のカルボナーラ食べたあたりからぐったりして、今日は体調不良で会社を休んだのです。
で、ファイルの整理してたら、pukiwiki のバックアップがみつかったと。

xampp 環境下で動かしたところ、画面真っ白になり使えなくなっておりました。
今は Evernote をメインにつかっているが、開発のメモなど1回「自分フィルター」がかかったメモは貴重。

それで、index.php の 10行目に以下のような行があるのでコメントアウトしてみると掲題のようなエラーが出力されていることが分かりました。

//error_reporting(E_ALL); // Debug purpose

対処がなるほどなと思ったのでメモ。Pukiwiki サイトにも記載があるけど。

質問箱5/98
http://pukiwiki.sourceforge.jp/?%E8%B3%AA%E5%95%8F%E7%AE%B15%2F98

BugTrack2/349 – php-5.4.0で動作させる対応(がるさんのコメント)
http://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F349

原因:
hex2bin()がphp5.4本体の組み込み関数になったので、pukiwiki の lib/func.php の実装と競合してた。

対処:
317行目付近を以下のようにする。

// Inversion of bin2hex()
if (! function_exists('hex2bin'))
{
	// 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;
}
スポンサーリンク

シェアする

フォローする

スポンサーリンク