S25R 拒絶ログソーティングスクリプト

blackcube上でPukiWikiを表示すると真っ白画面になる

piano2nd.smb.net上の本PukiWikiをwww.smb.netへそっくりコピーしてアクセスすると、真っ白画面となって、何も表示しない。

で、PukiWikiの index.php の 

//define('TDIARY_THEME',   'digital_gadgets');

のコメントを外して、エラー表示させてみると、

> php ./index.php
PHP Fatal error: Cannot redeclare hex2bin() in /(some where)/pukiwiki/lib/func.php on line 317

となっている。

これは、http://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F349 に記載されている

•hex2bin()が組み込み関数になってlib/func.phpの実装とぶつかってました.

と言うことらしい。

因みに、piano2nd は、

piano2nd# php -v
PHP 5.3.14 with Suhosin-Patch (cli) (built: Jul 17 2012 11:19:37)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

一方の、Blackcubeは、

blackcube# php -v
PHP 5.4.5 (cli) (built: Jul 26 2012 17:50:33)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

という結果。

さて、解決策はというと、 http://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F349 に有るとおり、func.phpを以下のように書き換えることでhtmlファイルを出力するようになりました

// Decode page name
function decode($key)
{
        if (function_exists('hex2bin')) {
                return hex2bin($key);
        } else {
                return internal_hex2bin($key);
        }
}

とした上で、つづいて喜寿されているbin2hex()の部分をファイル末尾に移動して以下の様に変更。

// hex2bin -- Converts the hex representation of data to binary
// (PHP 5.4.0)
// 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;
        }
}

filefunc.php

piano2nd@php5.3.x へ変更後のfunc.phpを設置

/usr/home/kuji/public_html/pukiwiki-1.4.7/lib/func.php

現時点で没問題の模様  これで、piano2nd のWikiをblackcubeへ単純コピーでバックアップできる。ヽ(^。^)丿

Blackcubeの方から本コンテンツを毎時15分に差分ダウンロードするようにした

以上


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS