変更点
- 数値文字参照とXHTML 1.0で定義されている文字実体参照をUTF-8としてデコードする関数
string od_unistr_decode_entity(string str[, int flags])
を追加- 第一引数はデコード対称の文字列、第二引数はデコードオプションで下記定数のビット和で表す (default: OD_ENT_IGNORE_NUL)
OD_ENT_STRICT
: セミコロンで終わっていない参照、未定義の実体参照、不正なコードポイントがあった場合、E_WARNINGを発し、falseを返すOD_ENT_ALLOW_CTRL
: 全ての制御文字をデコードする (ここでいう「制御文字」は「制御文字の数値文字参照」を指し、文字列に含まれる制御文字のバイナリデータではない)OD_ENT_CTRL_TO_SPACE
: 制御文字(0x00-0x1F, 0x7F-0x9F)をスペース(0x20)に変換するOD_ENT_NBSP_TO_SPACE
: ノンブレーキングスペース( 0xA0)をスペースに変換するOD_ENT_IGNORE_NUL
: NUL以外の制御文字をデコードし、NULは数値文字参照のままにするOD_ENT_IGNORE_CTRL
: すべての制御文字を数値文字参照のままにするOD_ENT_REMOVE_NUL
: NUL以外の制御文字をデコードし、NULは削除するOD_ENT_REMOVE_CTRL
: すべての制御文字を削除するOD_ENT_WARN_NUL
: NULがあった場合、E_WARNINGを発し、falseを返すOD_ENT_WARN_CTRL
: 制御文字があった場合、E_WARNINGを発し、falseを返す
- 第一引数はデコード対称の文字列、第二引数はデコードオプションで下記定数のビット和で表す (default: OD_ENT_IGNORE_NUL)
od_unichr()
,od_unichr_array()
,od_uniord()
,od_uniord_array()
の第二引数にtrueを与えたとき、文字列/コードポイントの代わりに文字のUnicodeプロパティ、スクリプト、ブロックを含む情報を返すようにした
サンプル1
php -r 'echo od_unistr_decode_entity("-<乾坤一擲>-
");' -<乾坤一擲>-
サンプル2
php -r 'print_r(od_uniord_array("乾坤一擲", true));' Array ( [0] => Array ( [0] => 20094 # コードポイント [1] => 104 # ブロックID: 定数OD_UBLOCK_*の値に等しい [2] => 11 # プロパティID: 定数OD_UPROP_*の値に等しい [3] => 45 # スクリプトID: 定数OD_USCRIPT_*の値に等しい [utf-8] => 乾 [block] => CJK Unified Ideographs [property] => Lo [property_alias] => Other_Letter [script] => Han ) [1] => Array ( [0] => 22372 [1] => 104 [2] => 11 [3] => 45 [utf-8] => 坤 [block] => CJK Unified Ideographs [property] => Lo [property_alias] => Other_Letter [script] => Han ) [2] => Array ( [0] => 19968 [1] => 104 [2] => 11 [3] => 45 [utf-8] => 一 [block] => CJK Unified Ideographs [property] => Lo [property_alias] => Other_Letter [script] => Han ) [3] => Array ( [0] => 25842 [1] => 104 [2] => 11 [3] => 45 [utf-8] => 擲 [block] => CJK Unified Ideographs [property] => Lo [property_alias] => Other_Letter [script] => Han ) )