ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。エンジニアの日々の開発などの記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

【PHP】あ を人間が読める文字に変換する。

この文字コードというのか、これ自体をちゃんと理解してないのですが、あという文字はを示しています。

変換については、こちらのサイトで確認できます。

www.shurey.com

では、この変換をPHPではどう実装すればできるのでしょうか?

ヒントはPHPのドキュメントのhtml_entity_decodeのページに書いてありました。

変換コードの実装と確認

以下のようなメソッドを作成しました。

<?php

function convert($input) {
    return preg_replace_callback(
        '/(&#[0-9]+;)/', 
        fn($m) => mb_convert_encoding($m[1], 'UTF-8', 'HTML-ENTITIES') 
        , $input);
}

これに対して、&#12371;&#12435;&#12395;&#12385;&#12399;&#19990;&#30028;&#65281;という文字を渡してみましょう。

<?php

function convert($input) {
    return preg_replace_callback(
        '/(&#[0-9]+;)/', 
        fn($m) => mb_convert_encoding($m[1], 'UTF-8', 'HTML-ENTITIES') 
        , $input);
}

echo convert('&#12371;&#12435;&#12395;&#12385;&#12399;&#19990;&#30028;&#65281;');

これを実行していきます。

$ php test.php
こんにちは世界!

このように、&#12371;&#12435;&#12395;&#12385;&#12399;&#19990;&#30028;&#65281;からこんにちは世界!という文字に戻すことができました。

さいごに

この&#[0-9]+;の文字のことをなんて呼ぶのか知らないので、もしご存知であればコメント等で教えていただきたいです。HTML-ENTITIESって書いてるからHTMLエンティティとかなのかな。

お問い合わせプライバシーポリシー制作物