You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
4.2 KiB
174 lines
4.2 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
|
|
// +----------------------------------------------------------------------
|
|
// | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace emoji;
|
|
|
|
class EmojiConfig
|
|
{
|
|
|
|
protected static $emojiList =[
|
|
[0x1f600],
|
|
[0x1f601],
|
|
[0x1f602],
|
|
[0x1f603],
|
|
[0x1f604],
|
|
[0x1f605],
|
|
[0x1f606],
|
|
[0x1f607],
|
|
[0x1f608],
|
|
[0x1f60a],
|
|
[0x1f60b],
|
|
[0x1f60c],
|
|
[0x1f60d],
|
|
[0x1f60e],
|
|
[0x1f60f],
|
|
[0x1f610],
|
|
[0x1f611],
|
|
[0x1f612],
|
|
[0x1f613],
|
|
[0x1f614],
|
|
[0x1f615],
|
|
[0x1f616],
|
|
[0x1f617],
|
|
[0x1f618],
|
|
[0x1f619],
|
|
[0x1f619],
|
|
[0x1f61a],
|
|
[0x1f61b],
|
|
[0x1f61c],
|
|
[0x1f61d],
|
|
[0x1f61e],
|
|
[0x1f61f],
|
|
[0x1f620],
|
|
[0x1f621],
|
|
[0x1f622],
|
|
[0x1f623],
|
|
[0x1f624],
|
|
[0x1f625],
|
|
[0x1f626],
|
|
[0x1f627],
|
|
[0x1f628],
|
|
[0x1f629],
|
|
[0x1f62a],
|
|
[0x1f62b],
|
|
[0x1f62c],
|
|
[0x1f62d],
|
|
[0x1f62e],
|
|
[0x1f62f],
|
|
[0x1f630],
|
|
[0x1f631],
|
|
[0x1f632],
|
|
[0x1f633],
|
|
[0x1f634],
|
|
[0x1f635],
|
|
[0x1f636],
|
|
[0x1f637],
|
|
[0x1f638],
|
|
[0x1f639],
|
|
[0x1f63a],
|
|
[0x1f63b],
|
|
[0x1f63c],
|
|
[0x1f63d],
|
|
[0x1f63e],
|
|
[0x1f63f],
|
|
[0x1f640],
|
|
[0x1f641],
|
|
[0x1f642],
|
|
[0x1f643],
|
|
[0x1f644],
|
|
[0x1f645],
|
|
[0x1f646],
|
|
[0x1f647],
|
|
[0x1f648],
|
|
[0x1f649],
|
|
[0x1f64a],
|
|
[0x1f64b],
|
|
[0x1f64c],
|
|
[0x1f64d],
|
|
[0x1f64e],
|
|
[0x1f64f],
|
|
[0x1f680],
|
|
[0x1f681],
|
|
[0x1f682],
|
|
[0x1f683],
|
|
[0x1f684],
|
|
[0x1f685],
|
|
[0x1f686],
|
|
[0x1f687],
|
|
[0x1f688],
|
|
[0x1f689],
|
|
[0x1f68a],
|
|
[0x1f68b],
|
|
[0x1f68c],
|
|
[0x1f68d],
|
|
[0x1f68e],
|
|
[0x1f68f],
|
|
[0x1f690],
|
|
[0x1f691],
|
|
[0x1f692],
|
|
[0x1f693],
|
|
[0x1f694],
|
|
[0x1f695],
|
|
[0x1f696],
|
|
[0x1f697],
|
|
[0x1f698],
|
|
[0x1f699],
|
|
[0x1f69a],
|
|
[0x1f69b],
|
|
[0x1f69c],
|
|
[0x1f69d],
|
|
[0x1f69e],
|
|
[0x1f69f],
|
|
];
|
|
|
|
public static function getEmjiHtmlList($slicing = 20)
|
|
{
|
|
require_once(ROOT_PATH.'extend/emoji/Emoji.php');
|
|
$list = [];
|
|
foreach (self::$emojiList as $unified){
|
|
$bytes='';
|
|
foreach ($unified as $cp){
|
|
$bytes .= self::utf8_bytes($cp);
|
|
}
|
|
$data = [
|
|
'html'=>emoji_unified_to_html($bytes),
|
|
'unified'=>emoji_html_to_unified(emoji_unified_to_html($bytes))
|
|
];
|
|
$list[] = $data;
|
|
unset($data);
|
|
}
|
|
return array_chunk($list,$slicing,true);
|
|
}
|
|
|
|
public static function utf8_bytes($cp){
|
|
|
|
if ($cp > 0x10000){
|
|
# 4 bytes
|
|
return chr(0xF0 | (($cp & 0x1C0000) >> 18)).
|
|
chr(0x80 | (($cp & 0x3F000) >> 12)).
|
|
chr(0x80 | (($cp & 0xFC0) >> 6)).
|
|
chr(0x80 | ($cp & 0x3F));
|
|
}else if ($cp > 0x800){
|
|
# 3 bytes
|
|
return chr(0xE0 | (($cp & 0xF000) >> 12)).
|
|
chr(0x80 | (($cp & 0xFC0) >> 6)).
|
|
chr(0x80 | ($cp & 0x3F));
|
|
}else if ($cp > 0x80){
|
|
# 2 bytes
|
|
return chr(0xC0 | (($cp & 0x7C0) >> 6)).
|
|
chr(0x80 | ($cp & 0x3F));
|
|
}else{
|
|
# 1 byte
|
|
return chr($cp);
|
|
}
|
|
}
|
|
|
|
}
|
|
|