PHPで絵文字をUnicodeに変換するコード
作成日:
2020年6月12日
WordPressで本体に組み込まれている絵文字をTwemojiに変換するコードはJavaScriptだけだったので、PHPで最初から絵文字をTwemojiの画像に変換する方法を探しました。
重要なのは、絵文字を一旦Unicodeに変換して、それを元にTwemojiの画像パス作成することです。
このコードは以下の通りです。
PHP functions.php
/**
* 機能:絵文字をTwemojiのSVG画像に置換.
*
* @param string $str 絵文字.
* @return string
*/
function convert_emoji ( $str ) {
$emoji = mb_convert_encoding( $str, 'UTF-32', 'UTF-8' );
$hex = bin2hex( $emoji );
$hex_len = strlen( $hex ) / 8;
$chunks = array();
for ( $i = 0; $i < $hex_len; ++$i ) {
$tmp = substr( $hex, $i * 8, 8 );
$chunks[ $i ] = format_emoji( $tmp );
}
$src = implode( '-', $chunks );
return '<img loading="lazy" draggable="false" class="emoji" alt="' . $str . '" src="https://twemoji.maxcdn.com/v/13.0.0/svg/' . $src . '.svg">';
}
/**
* 機能:絵文字をTwemojiのSVG画像に置換(フォーマット変換).
*
* @param string $str 絵文字.
* @return string
*/
function format_emoji( $str ) {
$copy = false;
$len = strlen( $str );
$res = '';
for ( $i = 0; $i < $len; ++$i ) {
$ch = $str[ $i ];
if ( ! $copy ) {
if ( $ch !== '0' ) {
$copy = true;
}
elseif ( ( $i + 1 ) === $len ) {
$res = '0';
}
}
if ( $copy ) {
$res .= $ch;
}
}
return strtolower( $res );
}
echo convert_emoji( '{絵文字}' );
php - convert emoji to their hex code - Stack Overflow
https://stackoverflow.com/questions/40575787/convert-emoji-to-their-hex-code
私は、例えばPOST(ソースは必要ありません)を介して取得した絵文字を検出しようとしています。 例として、私は次のような絵文字を使っています:✊🏾 (目に見えるようにしたい)
これで出来上がり。
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
コメントをどうぞ