関数・クラス解説

mb_decode_numericentity

version:PHP 4 >= 4.0.6, PHP 5, PHP 7 (公式)

HTML 数値エンティティを文字にデコードする

公式リファレンス

書式

mb_decode_numericentity ( string $str , array $convmap [, string $encoding = mb_internal_encoding() [, bool $is_hex = FALSE ]] ) : string

説明

文字列 str において指定した文字領域にある数値エンティティを変換し、 変換後の文字列を返します。

パラメータ

str
デコードする文字列。
convmap
convmap は変換するコード領域を指定する配列です。
encoding
encoding パラメータには文字エンコーディングを指定します。省略した場合は、内部文字エンコーディングを使用します。
is_hex
このパラメータは使われていません。

返値

変換された文字列を返します。

サンプル

例1 convmap の例

$convmap = array (    int start_code1, int end_code1, int offset1, int mask1,    int start_code2, int end_code2, int offset2, int mask2,    ........    int start_codeN, int end_codeN, int offsetN, int maskN ); // start_codeN および end_codeN に Unicode値を指定 // 値にoffsetNを追加、マスクmaskNを指定してビット毎の'AND'をとり、 // 数値エンティティに値を変換します。

例2 convmap を使って JavaScript の文字列をエスケープする例

<?phpfunction escape_javascript_string($str) {  $map = [          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,0,0, // 49          0,0,0,0,0,0,0,0,1,1,          1,1,1,1,1,0,0,0,0,0,          0,0,0,0,0,0,0,0,0,0,          0,0,0,0,0,0,0,0,0,0,          0,1,1,1,1,1,1,0,0,0, // 99          0,0,0,0,0,0,0,0,0,0,          0,0,0,0,0,0,0,0,0,0,          0,0,0,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1, // 149          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1, // 199          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1,          1,1,1,1,1,1,1,1,1,1, // 249          1,1,1,1,1,1,1, // 255          ];  // 文字エンコーディングは UTF-8  $mblen = mb_strlen($str, 'UTF-8');  $utf32 = bin2hex(mb_convert_encoding($str, 'UTF-32', 'UTF-8'));  for ($i=0, $encoded=''; $i < $mblen; $i++) {      $u = substr($utf32, $i*8, 8);      $v = base_convert($u, 16, 10);      if ($v < 256 && $map[$v]) {        $encoded .= '\\x'.substr($u, 6,2);      } else if ($v == 2028) {        $encoded .= '\\u2028';      } else if ($v == 2029) {        $encoded .= '\\u2029';      } else {        $encoded .= mb_convert_encoding(hex2bin($u), 'UTF-8', 'UTF-32');      }   }   return $encoded;} // テストデータ$convmap = [ 0x0, 0xffff, 0, 0xffff ];$msg = '';for ($i=0; $i < 1000; $i++) {  // chr() では 128 より大きい UTF-8 データを正しく生成できないので、mb_decode_numericentity() を使います  $msg .= mb_decode_numericentity('&#'.$i.';', $convmap, 'UTF-8');} // var_dump($msg);var_dump(escape_javascript_string($msg));

参考

  • mb_encode_numericentity() - 文字を HTML 数値エンティティにエンコードする
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール