SSブログ

Pukiwikiで日本語が表示されない [PHP]


 WindowsXP(PHP5.3.2,Pukiwiki1.4.7)のPukiwikiフォルダーを丸ごとWindows10(PHP5)にコピーして、WindowXPと同じPukiwikiを運用しようとしたが、簡単に移行できなく苦労したのでその時の備忘録。
  • コピー後Pukiwikiをブラウザーで表示させると、エラー500を表示し何も表示されない。
  • PHPの設定ファイルphp.iniをerror_perporting = E_ALL & ~E_DEPRECATED & ~E_NOTICEに変更してみたが、エラー500を表示し何も表示されない。
  • pukiwikiのindex.phpでもerror_reporting(0)の記述があったので、PHPの設定と同じに変更。
  • lib/func.phpで組込関数hex2bin()がユーザ関数として再定義されたとのエラー表示。
  • PHP5.4以降のhex2bin()が組込まれている場合、定義しないように変更。
  • function hex2bin($hex_string) {
       省略
    }
    if(! function_exists('hex2bin')) {
      function hex2bin(hex_string) {
        省略
      }
    }
    
  • 今度は日本語が表示されない。PukiwikiのHomePageに"PHPの仕様変更に伴い、PHP5.4 以降で正常にマルチバイト文字を表示できない事がある問題の修正"の記載
  • 読むとPHP5.4の変更で”htmlspecialchars関数の第3引数の変更”が悪さをしているよう。 「htmlspecialchars関数の第3引数には、処理対象文字列の文字エンコーディングを指定します。この指定をしない場合、従来(PHP5.3まで)はISO-8859-1とみなされていたのに対して、PHP5.4ではUTF-8とみなされるようになります。」とのこと。
  • wikiフォルダーの各ページのデータ(xx.txt)がEUC-JPだったので、libフォルダー内のphpファイルでhtmlspecialcharsを使用している箇所全て、第三引数にEUC-JPを指定するように変更
  • htmlspecialchars(xx);
      ↓
    htmlspecialchars(xx,ENT_QUOTES,'EUC-JP');
    

この間約半日費やして漸く正常に表示できるようになった。
本当は、PHP5.4対応のPukiwiki1.5.0に変更すれば問題ないのだが、今回はWindowsXPのPukiwikiと内容の同期したかったの修正で対応した。




nice!(0)  コメント(1)  トラックバック(0) 

nice! 0

コメント 1

ナガトモ

古いWiki(1.3)を使う必要があり、OSのみ最新のUbuntu 20.10 にしました。PHP,Apacheも最新にしました。PHPプログラムの &NEW -->NEW の編集で使えるようにはなりましたが 日本語が表示されません。お陰様でhtmlspecialcharsのパラメータを設定して無事使えるようになりました。ご教示ありがとうございました!!
by ナガトモ (2022-03-25 18:02) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。