- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mb_decode_numericentity引数)
mb_decode_numericentityの使用方法について
このQ&Aのポイント
- mb_decode_numericentityを使用して10進数数値文字参照を文字列に変換する方法について知りたいです。
- mb_decode_numericentityの第2引数であるconvmapの指定方法が分かりません。どのように指定すれば良いでしょうか?
- 下記の例で使用されているconvmapの値「0x0, 0xffff, 0, 0xffff」の意味が理解できません。10進数数値文字を変換する場合はどのように指定すれば良いですか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>「0x0, 0xffff, 0, 0xffff」の意味が分かりません。 convmapはマニュアルにあるとおり int start_code1, int end_code1, int offset1, int mask1 でワンセットです。当然(必要があれば)開始コード~終了コードの範囲指定で複数のセットを指定することも可能です。例示されている(0, 0xffff, 0, 0xffff)は0~65535(0x0000~0xffff)の範囲に対して、オフセットなし(0)で、そのまま変換する(マスクがフルビット)という意味です。おそらくは「これ以外の指定をする必要があるエンコード」が存在するのでしょうけど、寡聞にして知りません。少なくとも日本語を扱っている範囲では(0x0, 0xffff, 0, 0xffff)の指定で困ることがないです。 なお、数値文字参照「だけ」に拘らなければ mb_convert_encoding($html_source, $output_encoding, 'HTML-ENTITIES'); でも出来るらしいです(phpでサポートされる文字エンコードにHTML-ENTITIESもある)。 http://www.php.net/manual/ja/mbstring.supported-encodings.php
お礼
回答ありがとうございました。 大変参考になりましたー