微信におけるQQ表情の解析(php)

1842 ワード

微信公衆プラットフォームが受信したメッセージでは、ラベルは'/:'で始まる文字列で表され、ウェブページに表示する(例えば微信大画面を作成する)と仮定すると、変換が必要となる.
だから私は微信の公衆プラットフォームに順番に各QQの表情を送って、微信の公衆プラットフォームの楽屋で受け入れる表情を見ることができて解析されますhttps://res.wx.qq.com/mpres/htmledition/images/icon/emotion/0.gif この画像.だから自分で解析関数を書けばいいです.
微信の公衆プラットフォームの楽屋で発見して、テンセントは自分で1件の間違いの事をしました:いくつかの表情が正しく解析されていないことがあって、これらのラベルの特徴は括弧、引用符のこのような文字があって、移されて、変換して帰ってこないで、だからhtmlspecialcharsに使う必要がありますdecode()関数.詳細コードは次のとおりです.
function qqface_convert_html($text){	
	return str_replace( $GLOBALS['qqface_maps'], array_map( "add_img_label",  array_keys($GLOBALS['qqface_maps'])  ), array_map( "array_htmlspecialchars_decode", $text )  );
}

function array_htmlspecialchars_decode($v){
	return htmlspecialchars_decode($v, ENT_QUOTES);
}

function add_img_label($v){
	return '<img src="https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/'.$v.'.gif" width="24" height="24">';
}

array_map()関数の最初のパラメータはコールバック関数であり、2番目のパラメータは配列であり、配列の内容を遍歴し、最初の関数に呼び出し、ユーザー自身が関数の役割を定義した配列に戻る必要があります.例えば(http://www.w3school.com.cn/php/func_array_map.asp):
<?php
function myfunction($v) 
{
if ($v==="Dog")
	{
	return "Fido";
	}
return $v;
}
$a=array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));
?>
$GLOBALS['qqface_maps']
の内容は、https://github.com/auver/qqface ダウンロード
Emojiの表情の解析、ある人はすでにemojiの表とセットのcss、spriteを与えて、直接呼び出すことができて、参照してくださいhttps://github.com/iamcal/php-emoji