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

| Topic path: Top / その他 / PukiWikiで日本語で始まるページのタイトルが表示できない問題を解決する

*はじめに [#vea19e80]
Pukiwikiで日本語(マルチバイト文字)で始まるページ名を付けると,正しく表示されません.
PukiWikiで日本語(マルチバイト文字)で始まるページ名を付けると,正しく表示されません.

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

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


*原因 [#n509440a]
PHP5のbasenameメソッドのバグらしいです.


*解決方法 [#uc64d46b]
basenameメソッドの替わりにmb_ereg_replaceメソッドを使います.

skin/pukiwiki.skin.phpの
#geshi(php){{
<h1 class="title"><?php echo ($is_page) ? htmlspecialchars(basename($vars['page'])):$page ?></h1>
}}
という部分を
#geshi(php){{
<h1 class="title"><?php echo ($is_page) ? htmlspecialchars(mb_ereg_replace('^.*/', '', $vars['page'])):$page ?></h1>
}}
に置き換えます.


*参考情報 [#q697d0b0]
-[[日本語添付ファイル名の文字化け対策 - XOOPS環境の構築 - IR log:http://ir.iwate-u.ac.jp/irlog/index.php?XOOPS%B4%C4%B6%AD%A4%CE%B9%BD%C3%DB#ya37af6a]]
-[[【PHP】pathinfo、basename関数の日本語ファイル名取得問題 - 作業日報:http://blog.jojo.jp/?eid=632412]]
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS