• ベストアンサー

マルチバイト関数の呼び出し方

WindowsXP上でApache2.0.54とPHP5.0.4を使ってPHPのテストサーバを立てたのですが、マルチバイト関数をまったく読み込んでくれません。 PHPのコアファイルなどを "C:\Program Files\" 以下に "PHP 5.0.4" と言うフォルダをつくり、そこに保存してあります。Apacheの設定ファイルでPHPのモジュールをそのフォルダから呼び出して、うまくPHPが動作しました。また、PHP.ini上でextensionを "C:\Program Files\PHP 5.0.4\ext\" から読み出すようにしました。もちろん、extension一覧にあるphp_mbstrings.dllのコメントははずしてあります。 どのようにしたら、マルチバイト関数を呼び出せますか? よろしくお願いします。

  • potch
  • お礼率52% (34/65)
  • PHP
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

php.iniファイルが読み込まれていないのかもしれませんね php.iniはC:\WINDOWS\にコピーしてますか。 また<? phpinfo(); ?>で表示される情報で Configuration File (php.ini) Pathの値がC:\WINDOWS\php.iniとなっているか確認してみてください。

potch
質問者

お礼

2度のレスありがとうございました。 実は恥ずかしながら、php.iniをDLLと一緒にSystem32に入れてありました… php.iniを%windir%に移動させたら、ちゃんと読み込みました。(Configuration File Pathもちゃんと仰る通りになりました。) 本当にありがとうございました。

その他の回答 (2)

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

php.iniの[mbstring]のところは適切にコード指定していますか? [mbstring] ; language for internal character representation. mbstring.language = Japanese 特にココかな、defaultだとmb_なんとかの関数群は使えません。 ;mbstring.func_overload = 0 あとはphpのマニュアルでご確認を http://www.php.net/manual/ja/ref.mbstring.php

potch
質問者

補足

レスありがとうございます。 コード指定などを見直したり、上にあるところなどを変えてみたのですがまだFatalErrorです。(どうも、ほんとにモジュールを読みこんないようです。) エラーコードは以下のとおりです。 Fatal error: Call to undefined function mb_ereg() in C:\Documents and Settings\xxxxxx\My Documents\HTML\php\mbmatch.php on line 8

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

php.iniを書き換えた後Apacheの再起動はされましたか。

potch
質問者

補足

レスありがとうございます。 Apacheの再起動、システムの再起動両方しましたがマルチバイト関数がまだ使えません。

関連するQ&A

  • マルチバイト関数

    今ちょうどマルチバイト関数について勉強(独学)してるところなのですが マルチバイト関数をプログラム中で使えません。 私のプログラムが間違ってるのかと思い、サンプルをそのままコピーしたもの。 それを実行してみたのですが結果は同じでした。 Fatal error: Call to undefined function mb_substr() in C:\...\4-1.php on line 3 といったようなエラーです。 上手く設定がいってないのかなとphp.iniを見直すことにしました。 今phpのモジュールはC:\phpに解凍した中のextに入ってます。 ですから extension_dir = "C:\php\ext" といった風に設定しました。そして extension=php_mbstring.dll のように書きました。 C:\php\ext以下にこのphp_mbstring.dllが存在することは確認済みです。 テキストではこれで上手くいっているのでApacheを再起動して実行してみましたが どうしても先ほどのエラーが出て先に進みません。 いったいどうすれば使えるようになるのか教えていただけませんか?

    • ベストアンサー
    • PHP
  • PHP5.3.0のSQlite関数に必要なDLL

    以前PHP5.0.4で動作していたSQLiteを利用したプログラムが Apacheでエラーが返ってきます。 現在の環境:PHP5.3.0 Apache2.2 php.iniに以下のようにつけくわえてもだめでした。 extension=php_pdo.dll extension=php_sqlite.dll 両方、5.3.0のextディレクトリにはなかったので、どっかから ダウンしましたが、このdllがいけないのか、php.iniの extensionが間違っているのかわからないという状態です。 ちなみにphp_pdo_sqlite.dllというファイルは、5.3.0のextフォルダに 最初からあったみたいなので、 extension=php_pdo.dll extension=php_pdo_sqlite.dll にしてみたのですが、これでもsqlite_open()関数をコールするところで、undefined function call というエラーがApacheから返ってきます。 いったいどうすればいいのでしょうか。

  • マルチバイト関数の呼び出し方

    PHP初心者です。 xamppをインストールし、mb_convert_kana()を使うと、 Call to undefined function: mb_convert_kana() in というエラーがでました。 php.ini上の extension=php_mbstring.dllのコメントははずしてあります。 Configuration File (php.ini) PathはC:\XAMPP\apache\bin\php.ini にあります。 phpinfoを確認してもmbstringやConfiguなどの単語がみあたらず どう設定していいのかわかりません。 同じような質問をみて修正しましたが、いまだ関数を使えずにいます。 試したことは、 Configuration File (php.ini) PathをC:\WINDOWS\php.ini に置いたことです。 windowsXP PHP Version 4.4.7 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP MySQLモジュールの使用について

    PHPよりmysql_connect関数を呼び出そうとしたところ、 Fatal error: Call to undefined function mysql_connect() in ...path...と表示されます。 各種設定を見直したのですが、どうしても解決できません。 なお、詳細は下記の通りです。 Windows 7 Professional Apache 2.2 / PHP 5.3.3 / MySQL 5.1 >拡張モジュールを有効化 [php.ini] extension_dir = "c:\php\ext" extension=php_mysql.dll; ※パスの先にはphp_mysql.dllが存在する >環境変数 Path C:\Program Files\MySQL\MySQL Server 5.1\bin; ※パスの先にはlibmySQL.dllが存在する Apacheの再起動、PCの再起動を実行したが解決できず。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP5.26でPDO(MySQL)が設定できません

    設定を確認しましたがphpinfo()のPDOの欄がno valueのままです。 PDOを使おうとすると"could not find driver"となります。 PHPのセットアップ時に選択するようになっていたので、 それ以外は何もしていないと思います。 --------------------------------------------------- 環境:Windows/PHP5.26/Apache2.28/MySQL5.0 ■php.ini内 [PHP_PDO] extension=php_pdo.dll [PHP_PDO_MYSQL] extension=php_pdo_mysql.dll [PHP_MYSQL] extension=php_mysql.dll extension_dir ="C:\Program Files\PHP\ext" ■"C:\Program Files\PHP\ext"内 php_pdo_mysql.dll php_pdo.dll php_pdo_mysql.dll 試しにセットアップで全てのDB用のPDOを選択すると、「odbc, sqlite, user」のみ 表示されるようになりました。。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP5の拡張モジュールの関数を有効化するとエラーがでます。

    こんにちは。 いつもお世話になっております・・・。 PHP5+Apach2+MySQL4.0 Win環境で、インストールをしていたのですが・・。 <?php phpinfo(); ?>を、Apacheのドキュメントフォルダに 入れた所、ちゃんと表示されたので、インストール 自体は行えているのかな、と思うのです。 が、C:\Windows\php.ini の中に extension = php_mysqli.dll を足して Apacheを再起動させると Warning: PHP Start up:Unable to load dynamic library. c:/php/ext\php-mysqli.dll というエラーが2回繰り返し表示されてしまうのです。 php_mysqli.dllファイルは、c:/php/extフォルダに あったのを、システムフォルダ(C:\windows\system32)にもコピーしてあります。 なぜこのようなエラーが出てしまうのでしょうか・・・。 どうかご指導よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php.iniの修正

     こんにちは!最近Apache,PHP,MySQLをインストールしたんですが、今php.iniの修正に1つところが困ってます:  php.iniの中に“extension=php_mysql.dll”これ前の“;”を外すじゃない、 しかし、外してから、保存してApache2を再起動するとこんなメセージが出てくるですよ:“PHP Startup:unable to load dynamic library 'D:\PHP\ext\php_mysql.dll'-指定されたモジュールが見つかりません。” これは如何すればいいですか?分かる方がいましたら是非教えてください、お願いします!

    • ベストアンサー
    • PHP
  • SQLiteの設定

    PHP初心者です。 Apache/2.0.64 (Win32) PHP/5.1.6 上記の環境でphp.iniの設定を編集して、SQLiteを使えるようになりたいです。。 (471行目)extension_dir = "c:\php\ext" ←パスは何度も確認しました。 (607行目)extension=php_pdo.dll (608行目)extension=php_pdo_sqlite.dll (609行目)extension=php_sqlite.dll ↑上記3つのファイルがextフォルダに入っていることも確認しました。 上のようにphp.iniの設定をし直して上書き保存をし、Apacheを再起動させ、phpinfo()で設定確認をしました。 しかしSQLiteの設定項目は一向にあらわれません。。 使用しているPCはwindows vistaです。 何故SQLiteの設定がされていないのか、アドバイス頂きたいです>< (わかりずらい部分があったらすみません。)

    • ベストアンサー
    • PHP
  • PHPグラフ作成について

    今PHPでGDを使い円グラフを作成しようとしていますが うまくいきません. 環境はwindowsで,PHPversion 5.2.3です. GDを使うためには, PHP.iniの extension=php_gd2.dllの行からコメントをはずして Apacheを再起動すると本に書いてありましたので, PHP.iniの extension=php_gd2.dll extension=php_gettext.dll extension=php_gmp.dll extension=php_ifx.dll extension=php_imap.dll extension=php_interbase.dll extension=php_ldap.dll extension=php_mbstring.dll extension_dir=C:\program Files\PHP\ext extension=php_mcrypt.dll extension=php_mhash.dll extension=php_mime_magic.dll extension=php_ming.dll extension=php_msql.dll extension=php_mssql.dll extension=php_mysql.dll extension=php_mysqli.dll extension=php_oci8.dll extension=php_openssl.dll extension=php_pdo_firebird.dll extension=php_pdo_mssql.dll extension=php_pdo_mysql.dll extension=php_pdo_oci.dll extension=php_pdo_oci8.dll extension=php_pdo_odbc.dll extension=php_pdo_pgsql.dll extension=php_pgsql.dll extension=php_pspell.dll extension=php_shmop.dll extension=php_snmp.dll extension=php_soap.dll extension=php_sockets.dll extension=php_pdo.dll extension=php_pdo_sqlite.dll extension=php_sqlite.dll extension=php_sybase_ct.dll extension=php_tidy.dll extension=php_xmlrpc.dll extension=php_xsl.dll extension=php_zip.dll のコメントをはずし, Apacheをrestartしました. しかし,グラフをつくるプログラムを書いて実行すると, Warning: require_once(jpgraph/jpgraph.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\prog\traning\piegraph.php on line 11 Fatal error: require_once() [function.require]: Failed opening required 'jpgraph/jpgraph.php' (include_path='.;C:\Program Files\PHP\pear') in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\prog\traning\piegraph.php on line 11 のようなエラーが出てしまいます. これはGDがきちんとインストールされていないから, このようなエラーがでるのでしょうか? もしそうであればGDをインストールする方法をご存知の方や 解決方法をご存知の方いらっしゃいましたら いらっしゃいましたら教えていただけないでしょうか? お願いします.

    • 締切済み
    • PHP
  • apache2 phpからMySQLを読み込めない

    Windows XP環境で、apache2.2とphp5、MySQL5.0をインストールしています。 apacheのモジュールとしてphpを動かすことには成功していますが、 phpからMySQLを参照出来ないようです。 具体的には <?php $mysql=mysql_connect("localhost","root","○×△"); if(mysql_select_db("dbname", $mysql)){ print "OK!"; }else{ print "NG!"; } ?> といったプログラムをブラウザから実行させると、真っ白なページが表示されます。(NGとすら出ません) php.iniの設定は一応済ませています。 1.extension_dir = "c:\Program Files\PHP\ext\" (c:\Program Files\PHPが本体のインストールディレクトリです。) 2.extension = php_mysql.dllの有効化 設定後はapacheの再起動もしています。 念のためphpinfo()を呼び出して、確認しましたが、「MySQL」と言った文字列は見あたりませんでした。 なお、MySQLは正常にサービスとして動作しており、 設定等も済ませて、コマンドラインからは接続できることを確認しています。 根本的に設定等を間違えているのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP