php mb_convert_variables mb_convert_encoding 違い

php-logo php

php に存在する、以下の両関数は、いずれも文字コードを変更するもの。

 

  • mb_convert_variables
  • mb_convert_encoding 

 

違いは、

  • 引数の指定順
  • 扱える型(文字列かオブジェクト(配列含む))

がある。

 

mb_convert_encoding

PHP: mb_convert_encoding - Manual

mb_convert_encodingある文字エンコーディングの文字列を、別の文字エンコーディングに変換する

こっちは文字列が対象ですな。

 

ちな、PHP7.2からは配列も対象らしい。↓

PHP7.2からmb_convert_encoding()で配列がサポートされていた
PHP7.2からmb_convert_encoding()で配列がサポートされていました。 PHP: mb_convert_encoding – Manual 勿論、連想配列にも対応しており配列のキーの文字化けも修正してくれます

PHP7.2からmb_convert_encoding()で配列がサポートされていました。

 

基本構文

mb_convert_encoding(変換する string または array, 変換後文字エンコーディング , 変換前文字エンコーディング):

 

3つ目の引数は、指定しなかった場合、

  1.  mbstring.internal_encoding setting  が使われる。これも設定されていなかった場合、
  2.  default_charset setting が使われる。

 

 

戻り値

 

以下いずれか。

  • string
  • array
  • false (失敗時)

mb_convert_variables

mb_convert_variables  変数の文字コードを変換する

こっちはオブジェクトとか配列が対象ですな。(文字列もいけるけども)

 

mb_convert_encodingとmb_convert_variablesの違い - Qiita
mb_convert_encoding 文字列の文字コードを変換する 記述方法 mb_convert_encoding(変換する文字列,変換後の文字コード,変換前の文字コード) 返り値 変換した文字列 特徴 文...

こちらのQiita記事にサンプルコードを載せてくださっている。

 

 

基本構文

mb_convert_variables(変換後エンコーディング, 変換前エンコーディング, 変換対象の変数)

 

4つ目以降に変数を指定した場合、変換対象を追加できる。

戻り値

 

成功時に変換前の文字エンコーディングを返し、失敗した場合に false を返します。

 

その他参考にしたサイト

 

https://taitan916.info/blog/archives/373

 

■mb_convert_encoding
こっちのがよく使う。
mb_convert_encoding($str, ‘変更後の文字コード‘, ‘変更前の文字コード‘);
文字列のみしか使えないとのこと。

■mb_convert_variables
使ったこと無い。
mb_convert_variables(‘変更後の文字コード‘, ‘変更前の文字コード‘, $str);
配列やオブジェクトにも使用できるとのこと。

 

引数の指定順が違うのがポイントですな。

アザシタ。

コメント

タイトルとURLをコピーしました