こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

mb_ereg_replaceに関して

こんにちは。お世話になっております。
開発時(PHP5.1.4)では何ら問題なかったものが、レンタルサーバー上(PHP5.0.4)へアップロードしたら、mb_ereg_replace関数の部分でエラーが出て対処に困っております。

エラー文
Call to undefined function mb_ereg_replace()


$key = $_GET['key'];
$key = addslashes($key);
$key = mb_convert_encoding($key, 'EUC-JP', 'auto');
$key = mb_ereg_replace(" ", " ", $key);//ココでエラー
$arr = explode(" ",$key);

上記は実際のソースの一部ですが、GETで渡された文字列(検索キーワード、key=○○)をDB(MySQL)に登録のあるデータを検索する。といった結果を願い設置しております。

借りたサーバ(共有)は、(適切な言葉じゃないかも知れませんが)PHPはCGIのもと動かしているようですが、これも原因の一つなのでしょうか?
お忙しいなか恐縮ですが、ご指導のほど宜しくお願い申し上げます。

投稿日時 - 2007-04-20 17:28:51

QNo.2936216

すぐに回答ほしいです

質問者が選んだベストアンサー

'--enable-zend-multibyte' '--with-pear' '--prefix=/usr/local' 'i386-portbld-freebsd6.1'

の部分は関係が無いように思います。

--disable-mbregex とかになっていれば、mb_ereg_replace関数が使えなくても当たり前なのですが、そうなっていないんですよね。

ちょっとネットで調べてみましたが、今回の件と似たような情報は見つかりませんでした。

インストールがきちんとされていないのだと思いますが、私には原因がよく判りません。レンタルサーバの業者に相談してみて下さい。申し訳ないです。

投稿日時 - 2007-04-21 11:24:28

お礼

racci様

こんばんは。検索までして調べて下さったのですね。有難う御座います。
関数が使えないなどと、思いもしない状況に戸惑っていしまいますが、
週明けにでもサーバ会社へ相談してみます。
お忙しい中いろいろと有難う御座いました。

投稿日時 - 2007-04-21 23:58:58

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

mb_convert_encoding は動くけれど、mb_ereg_replace は「Call to undefined function」になるんですよね。

phpinfo を表示して、
Multibyte (japanese) regex support enabled
のようになっているか調べてみてください。

投稿日時 - 2007-04-20 18:36:05

お礼

racci様

はじめまして、こんばんは。早速のお返事に感謝いたします。
で、早速借りているサーバーのphpinfoを調べてみたところ、

mbstringの項目は、以下の3つのみの表示しかありませんでした・・。
開発環境では、racci様の仰る通りになっていたのですが・・。

Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation enabled

ちなみに、このレンタルサーバにあるphpinfoでは、表示が開発環境と若干違い、はじめの項目にあるConfigure Command の中に

'--enable-zend-multibyte' '--with-pear' '--prefix=/usr/local' 'i386-portbld-freebsd6.1'

という表示がありましたが、これも起因されていることなのでしょうか?勉強不足ではありますが、急を要しているため是非とも貴重なアドバイスを頂きたく思っております。お忙しい中恐縮ですが、引き続きご指導いただければ幸いに思います。

投稿日時 - 2007-04-20 20:11:50

あなたにオススメの質問