PukiWikiで日本語で始まるページのタイトルが表示できない問題を解決する

2009-07-04 (土) 07:15:29 (5402d) | Topic path: Top / その他 / PukiWikiで日本語で始まるページのタイトルが表示できない問題を解決する

はじめに

PukiWikiで日本語(マルチバイト文字)で始まるページ名を付けると,正しく表示されません.

途中にシングル・バイト文字が含まれていると最初のシングル・バイト文字以後だけが表示されます.

PukiWiki 1.4.7とPHP 5.2.9で確認しました.

原因

PHP5のbasenameメソッドのバグらしいです.

解決方法

basenameメソッドの替わりにmb_ereg_replaceメソッドを使います.

skin/pukiwiki.skin.phpの

<h1 class="title"><?php echo ($is_page) ? htmlspecialchars(basename($vars['page'])):$page ?></h1>

という部分を

<h1 class="title"><?php echo ($is_page) ? htmlspecialchars(mb_ereg_replace('^.*/', '', $vars['page'])):$page ?></h1>

に置き換えます.

参考情報

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS