• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mb_detect_encoding)

mb_detect_encodingについての質問

このQ&Aのポイント
  • mb_detect_encoding関数は、文字エンコーディングを検出する関数です。
  • 引数$fromは、検出する文字エンコーディングの候補となる文字エンコーディングを指定します。
  • 引数$toは、変換先の文字エンコーディングを指定します。

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

  • ベストアンサー
  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.3

PHPの変数名に $from." は使用できないの(. と " は使用不可)で $from." = "EUC-JP"; とはできません。また " . $to も変数名でない(変数名は $ から始める)ので " . $to = "UTF-8"; とはできません。 変数 $from および $to がそれぞれ1つの文字列と考えて下さい。ですので先ほど回答したように $from = "EUC-JP"; // 文字列を$fromに代入 $to = "UTF-8"; // 文字列を$toに代入 とすると、 $from . "," . $to は "EUC-JP" . "," . "UTF-8" となり、全てが結合されて "EUC-JP,UTF-8" という新たな文字列が作られています。 文字列の結合は例えば、 $sample = "hehehe" . "foo" . "hogehoge"; と記述すれば、これは $sample = "hehehefoohogehoge"; と同じ結果になります。 今回の $from . "," . $to というのは、上記の例の最初の文字列("hehehe")と最後の文字列("hogehoge")が変数になっているととらえて下さい。 文字列結合はよく使用しますので、しっかりマスターしましょう!

osaka58
質問者

お礼

めちゃめちゃよくわかりました!!!! ありがとうございます!! これで一歩前に進むことが出来ました!! また何かありましたらよろしくお願いします^^

その他の回答 (2)

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

先ほどのアドバイスの補足説明です。 $det_enc = mb_detect_encoding($string, $from . ", " . $to); if ($det_enc and $det_enc != $to) { return mb_convert_encoding($string, $to, $det_enc); } else { return $string; } の箇所ですが、mb_detect_encoding()関数で検出された文字コードが $to と違っていれば文字コードを変換して、$to と同じであれば何も変換しないという処理です。

osaka58
質問者

補足

補足までありがとうござます!! この「"」の位置がわからないのですが $from." にEUC-JPを代入すると EUC-JP" となり " . $toにUTF-8を代入すると "UTF-8 となり $det_enc = mb_detect_encoding($string, EUC-JP","UTF-8); となってしまうと考えてしまうのですが補足していただいてもよろしいでしょうか!? よろしくお願いします!!!

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

「.」は文字列結合の演算子です。 $from = "EUC-JP"; $to = "UTF-8"; だったと仮定すると $det_enc = mb_detect_encoding($string, $from . ", " . $to); の箇所を変数を使用せずに記述すると $det_enc = mb_detect_encoding($string, "EUC-JP,UTF-8"); となります。

osaka58
質問者

補足

早速の回答ありがとうざいます!! この「"」の位置がわからないのですが $from." にEUC-JPを代入すると EUC-JP" となり " . $toにUTF-8を代入すると "UTF-8 となり $det_enc = mb_detect_encoding($string, EUC-JP","UTF-8); となってしまうと考えてしまうのですが補足していただいてもよろしいでしょうか!? よろしくお願いします!!!

関連するQ&A

専門家に質問してみよう