変更点
- 数値文字参照と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
)
)