今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 文字列をファイルに書き込む - file_put_contents()
  3. ヒアドキュメント
  4. 論理値 - boolean
  5. OS情報を取得 - php_uname()

日本語環境の設定 - mbstring

当ページのリンクには広告が含まれています。

PHPの日本語環境に関する設定、mbstringについてをみていきましょう。

» php.iniの設定

準備

mbstringを設定する前にWindowsとCentOS環境では、以下の設定が必要になります。

Windows

拡張モジュールのディレクトリを設定し、PHPの設定ファイル(php.ini)からDLL「php_mbstring.dll」を読み込むように設定します。

; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
… 中略 …
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll ← コメント(;)をはずします。
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
;extension=php_mysql.dll
;extension=php_mysqli.dll

CentOS

mbstringを利用するために以下のパッケージをインストールします。

# yum install php-mbstring

XAMPP、MAMP、Debianでは、準備は特に必要ありません。

mbstringの設定

日本語環境(UTF-8)を設定するにはPHPの設定ファイル(php.ini)のmbstringを設定します。以下は設定例です。

[mbstring]
; language for internal character representation.
; http://php.net/mbstring.language
mbstring.language = Japanese ← コメント(;)をはずします。

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
; http://php.net/mbstring.internal-encoding
mbstring.internal_encoding = UTF-8 ← コメントをはずし、内部エンコーディングをUTF-8へ。

; http input encoding.
; http://php.net/mbstring.http-input
mbstring.http_input = auto ← コメント(;)をはずします。

; http output encoding. mb_output_handler must be
; registered as output buffer to function
; http://php.net/mbstring.http-output
mbstring.http_output = UTF-8 ← コメントをはずし、エンコーディングをUTF-8へ。

; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
:
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
;       portable libs/applications.
; http://php.net/mbstring.encoding-translation
mbstring.encoding_translation = On ← コメントをはずし、Onに。

; automatic encoding detection order.
; auto means
; http://php.net/mbstring.detect-order
mbstring.detect_order = auto ← コメント(;)をはずします。

設定の確認

mb_get_info関数を使って、mbstringの設定を確認します。以下のPHPスクリプトを実行します。

<?php
print_r(mb_get_info());
?>

実行結果です。mbstringで設定を変更した項目が反映されいれば、OKです。

Array
(
    [internal_encoding] => UTF-8
    [http_output] => UTF-8
    [http_output_conv_mimetypes] => ^(text/|application/xhtml\+xml)
    [func_overload] => 0
    [func_overload_list] => no overload
    [mail_charset] => ISO-2022-JP
    [mail_header_encoding] => BASE64
    [mail_body_encoding] => 7bit
    [illegal_chars] => 0
    [encoding_translation] => On
    [language] => Japanese
    [detect_order] => Array
        (
            [0] => ASCII
            [1] => JIS
            [2] => UTF-8
            [3] => EUC-JP
            [4] => SJIS
        )

    [substitute_character] => 63
    [strict_detection] => Off
)

環境の構築 の人気記事

  1. PHP + Apache 環境の構築
  2. 日本語環境の設定 - mbstring

関連記事(一部広告含む)