in WordPress/lyceum

php-gettext 於 x86_64 的 Bug

之前我發表了一篇在 Lyceum 上的 Language plugin - Lyceum Language Plugin。我也把他用在我的 Blog 上面,不過因為最近把 Blog 從我自已的電腦搬到 slicehost 的 vps 上,從原先的 32bit 環境轉換至 64bit 的環境下。不過在把 blog 搬過去後,發現該 plugin 竟然無法使用了。查了一下,原來是因為 php 在 64bit 環境上的 bug (特色?),造成 gettext 存取語系檔後,無法分析他。

這個問題的解決方法很簡單,你可以去 php-gettext 的官方網站下載最新的 source ,解壓縮至 wp-includes 底下取代掉原先的 gettext.php 即可。

靠下面的 MAGIC number 來協助處理此 Bug ,可參考 php-gettext 的原始檔。

        // $MAGIC1 = (int)0x950412de; //bug in PHP 5.0.2, see https://sa
vannah.nongnu.org/bugs/?func=detailitem&item_id=10565
        $MAGIC1 = (int) - 1794895138;
        // $MAGIC2 = (int)0xde120495; //bug
        $MAGIC2 = (int) - 569244523;
        // 64-bit fix
        $MAGIC3 = (int) 2500072158;

PS. 不過我比較偷懶,直接拿 wordpress 最新板本的 gettext.php 來使用。

Write a Comment

Comment

  1. 二個人合租丫,我算一算還好
    還滿方便的,而且可以自已管理,比他們哪些管理的還穩
    且不會有什麼限制