0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【PHP】配列で渡された引数のエンコードが正しいかどうかチェックする

Last updated at Posted at 2018-08-29

文字エンコードを行うユーザー定義関数cken()についての備忘録。

  1. mb_check_encode()を使ってエンコードチェックをsamapA.phpに定義
  2. foreach文で配列から値に$valueを取り出し、もし入っていた値が配列ならimpode()を使って値を1個の文字列に連結しておいてから、mb_check_encoding()
  3. エンコードが不一致の場合、$resultにfalseを代入してforeach文の繰り返しをブレイクする。
  4. 最終的に$resultが初期値のtrueのままであれば、文字エンコードは正しく、途中でfalseが代入されていれば文字エンコードが一致していないことになる。
samapA.php
// 
<?php 
function cken(array $data) {
  $result = true;
  foreach ($data as $key => $value) {
    if (is_array($value)) {
      $value = implode("", $value);
    }
    if (!mb_check_encoding($value)) {
      $result = false;
      break;
    }
  }
  return $result;
}
// 表示用
<?php
require_once("./util.php");
$utf8_string = "こんにちは";
$sjis_string = mb_convert_encoding($utf8_string, 'Shift-JIS');
$encoding = mb_internal_encoding();
if (cken([$sjis_string])) {
  echo '配列の値は、' , $encoding, 'です。';
} else {
  echo '配列の値は、',$encoding, 'ではありません。';
}
0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?