ライブレポ!コーネリアス独自の世界観をお届け!

Windows XP SP3
Apache2.2.8
PHP5.2.6
---

mb_strlen()関数が使えません。
「Call to undefined function mb_strlen()」
というエラーが表示されます。

php.iniの設定の問題なのでしょうか?
[mbstring]の部分だけ貼り付けておきます。

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 7

このQ&Aに関連する最新のQ&A

A 回答 (2件)

php_mbstring.dllは入っていますか?


入っているのであれば、自分で記述すればよいと思いますよ~。
ちなみにXAMPPだと設定を行わなくてもつかえたと思うのですが…。

参考URL:http://www.apachefriends.org/jp/xampp-windows.html
    • good
    • 0
この回答へのお礼

C:\Program Files\PHP\
配下にはphp_mbstring.dllは入っていませんでした。

紹介いただいたXAMPPを導入したら問題解決しました。
ただ、文字コードの設定で多少てこずったので、報告させていただきます。

まず、文字コードの設定は下記のサイトを参考にしました。
http://centos.server-manual.com/apache.html

ところが設定が反映されず、文字化けを起こしてしまいました。
C:\xampp\php\php.ini
をいじっていたのですが反映されず
C:\xampp\php\php5.ini
というファイルがあったのでこちらかと思いましたがまた反映されませんでした。
XAMPP for Windowsのサイトのよくある質問の中に「質問6: どこから設定を変更できますか?」というのがあり、そこには
「PHP: .\xampp\apache\conf\php.ini」
とあるのですが、ここにはphp.iniはありません。ここへコピーすればいいのかと思ったのですが、やはり反映されませんでした。

ローカルのphpinfo()を見た所、「Loaded Configuration File 」が「C:\xampp\apache\bin\php.ini」とありました。このファイルを編集したところ、ようやく思い通りに動いてくれました。

苦労はしましたが解決できた事が嬉しかったです。

ご紹介いただきありがとうございました。

お礼日時:2008/09/18 19:47

php.ini内にある


「;extension=php_mbstring.dll」
と記述されている部分の「;」を削除して保存後、apacheを再起動すれば大丈夫だと思います。

この回答への補足

回答ありがとうございます。

php.ini内に
;extension=php_mbstring.dll
という行が無いのですが。

補足日時:2008/09/16 15:20
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qphpでmb関数が使えない

phpでmb_strlen関数を使おうと思ったら、Call to undefined function mb_strlenとエラーが出て使えません。調べたら他のmb関数も使えないようです。vagrantで作った仮想サーバなのですが、php.iniの設定がおかしいのでしょうか?

Aベストアンサー

phpをインストールするときに有効にしていますか(デフォルトでは無効です)。

http://php.net/manual/ja/mbstring.installation.php

QPHP関数 mb_strlenでエラーになる

PHP5+MySQLでログイン認証画面を作る勉強をしています。

実行すると、mb_strlen関数を使っている所でエラーになります。

以下、エラーメッセージ
Fatal error: Call to undefined function mb_strlen() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\anifre\show_error.php on line 7

何か定義をしておかないとダメなのでしょうか?
ちなみにstrlen関数は使えました。

※エラーメッセージ表示用モジュールで使用しています
if(mb_strlen($mesErr) > 0){
//エラー内容表示
}

Aベストアンサー

mb_strlen()が未定義なんですから想像すれば
マルチバイト関係のモジュールが設定されていないのでは?
ほかのmb_xxx()の関数は動いていますか?
またphp_info()でマルチバイト系のデータが取り扱えるか
設定を確認してみてください

QInner join と Left joinの明確な違いは?

Inner join と Left joinの違いがよくわかりません。
教えてください。

Aベストアンサー

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
4               NULL
5               NULL
6               NULL
の6レコードが出力されますが、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 INNER JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
の3レコードしか出力されません。

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3           ...続きを読む

Q未、済、完了の英訳は?

前回類似件名で質問したのですが、
質問の仕方があまり良くなかったと思い質問し直させて頂きます。

ある項目に対して「未」、「済」、「完了」のいずれかを選択させたい帳票があるのですが、
これを英語で実現するにはどのような単語が当てはまるのでしょうか?(1,2語程度で)
「済」、「完了」については「done」が好ましいのかなと思っていますが
いかがでしょうか?

宜しくお願い致します。

Aベストアンサー

No. 2 です。

なるほど。。。
そういうことなのでしたら、“Done” と “Not Yet” が適切だと思います。

“Yet” は単独で用いられる場合、『まだ~ない』という意味に取られることはなく、接続詞の『でも』の意味で取られます。
なので、選択肢が “Done” と “Yet” であったとしても、理解してもらえない可能性が残ります。
それを排除するためには、“Not Yet” とするべきだと思います。

ご参考まで。^^


人気Q&Aランキング