*4.2.0より前のPHPでエラーが発生する (Debian, mbregexの関数名が異なる) [#v3f8a635]
* 「ChaSen, KAKASI による、ページ名の読みの取得機能」が利用できない (Debian woody限定)[#v3f8a635]
- 以前のタイトル: 4.2.0より前のPHPでエラーが発生する (Debian, mbregexの関数名が異なる)

-ページ: BugTrack
-投稿者: [[三浦]]
-優先順位: 普通
-状態: 提案
-カテゴリー: 本体バグ
-優先順位: 低
-状態: 完了
-カテゴリー: その他
-投稿日: 2004-01-15 (木) 19:14:03
-バージョン: 1.4.1

**メッセージ [#nd4d34e6]
Debian GNU/Linux 3(woody)のphp4.1.2へmbregex ver1.3.1 のmbregex.soを追加して使用した場合、関数名は
mb_ereg()ではなく、mbereg()なので、func.phpでエラーになる。
mb_regex_encoding()も同様。
php 4.2.0以降ならば、問題はない。

したがって、func.phpのpage_list()で、
    $mbregexv = function_exists('mb_regex_encoding');
    ...
    ($mbregexv)?mb_regex_encoding(...):mbregex_encoding();
    ...
    ($mbregexv)?mb_ereg(....):mbereg(...);
といった修正を行うとよい。
----
-埋もれてますのであげておきます。 -- [[Ratbeta]] &new{2004-07-06 (火) 20:52:07};
-これは誤解でなければバックワードコンパチの話題ですよね。であれば「古い関数を呼ぶ」新しい関数を(場合に応じて、init.phpあたりで、自動で)定義する方が、ソースが読み辛くならない上に根本的な対策になりそうです。別の視点で見れば、mbstringエミュレータなどは、このよう古い関数名をあらかじめ定義しちゃうことで優位性を高めるネタにできると。そういう話であってますか? -- [[henoheno]] &new{2004-07-06 (火) 21:44:59};
-お知らせいただきありがとうございます。これは誤解でなければバックワードコンパチの話題ですよね。であれば「古い関数を呼ぶ」新しい関数を(場合に応じて、init.phpあたりで、自動で)定義する方が、ソースが読み辛くならない上に根本的な対策になりそうです。%%別の視点で見れば、mbstringエミュレータなどは、このよう古い関数名をあらかじめ定義しちゃうことで優位性を高めるネタにできると。そういう話であっていますでしょうか?%% (ハズレというか、読み違いです XD ) -- [[henoheno]] &new{2004-07-06 (火) 21:44:59};
-ですので、ご提案の対処法ではないやり方になりそうです。うまい方法を募集します -- [[henoheno]] &new{2004-07-06 (火) 21:46:31};

------------------------------------
** mbregex: マルチバイト対応の正規表現関数ライブラリ [#v4b27777]

-少々確認しました。この問題は ''古いPHP'' および ''古いmbregex'' (mbstring)で、かつ pukiwiki.ini.php にて ''$pagereading_enable'' を1にした時、すなわち「ChaSen, KAKASI による、ページ名の読みの取得」機能を有効にしているとき限定の問題の様です。このBugTrackのタイトルを修正します。((以前タイトルを修正したのも自分なのですが、なぜか今回、たった今まで mbstringとmbregexを読み間違えていた予感が XD )) -- [[henoheno]] &new{2004-07-08 (木) 22:40:52};

    function mb_ereg($arg){
            mbereg($arg);
    }
    function mb_regex_encoding($arg){
            mbregex_encoding($arg);
    }

-このようなラッパーを定義してやれば、ソースをこまごま更新せずともしのげるのではないかと思います。PukiWikiの基本機能にかかわる重大なエラーかと思っていましたが、非常に限定的な問題だとわかってちょっと力が抜けてしまいました・・・ -- [[henoheno]] &new{2004-07-08 (木) 23:28:26};

- Debian Linux 3.0(Woody)のPHP4 で mbregex_encoding() が使えない様子。コンパイル時に「--enable-mbregex」が指定されていない???
-- http://d-k.cocolog-nifty.com/blog/2005/02/pukiwiki_144cha.html

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.029 sec.

OSDN