[ 拓展包: Laravel-Emoji ] 在Laravel中集成使用 Emoji 表情
1、简介
在社交网络如此发达的今天,Emoji包无处不在,无论是QQ、微信、微博还是各大论坛,到处都是表情包的身影。作为一个开发者,你可能需要在应用中提供多种表情以供用户评论、交流时使用。Github地址:https://github.com/unicodeveloper/laravel-emoji
PHP 5 已经支持将Unicode
字符串转化为表情,但是比较复杂:
<?php
echo json_decode('"\uD83D\uDE00"');
PHP 7
对 Unicode
字符串提供了更好的支持,我们可以更方便地显示表情:
<?php
echo "\u{1F60E}";
当然,这样的编码是不友好的,我们需要使用可读性更好的方式来实现表情显示,幸运的是,在Laravel中,我们可以通过 Laravel Emoji 这个拓展包来实现这个目的。
2、安装
系统要求:PHP 7.0+/HHVM 3.3+,Composer
要安装最新版本的 Laravel Emoji,在 composer.json 中声明如下依赖:
"unicodeveloper/laravel-emoji": "1.0.*"
然后运行 composer install 或 composer update 来下载并安装该扩展包。
安装完成之后,需要注册服务提供者,在配置文件 app.php 中,添加如下这段代码到 providers 数组:
Unicodeveloper\Emoji\EmojiServiceProvider::class
同时,不要忘了注册门面到 aliases
数组:
'aliases' => [
...
'Emoji' => Unicodeveloper\Emoji\Facades\Emoji::class,
...
]
3、使用
Laravel Emoji 为我们提供了多种显示表情的方法,然后通过 Emoji
门面统一调用,怎么调用很简单,在Controller中引入Emoji,然后运行即可:
<?php
Emoji::findByAlias("sweat_smile");Emoji::findByName("heart_eyes");
4、其它使用方法
默认在/vendor/unicodeveloper/laravel-emoji/src/Emojis/emoji.php
中定义了17个表情,需要更多的表情,你需要自己去获取更多的 Emoji 表情,请查看完整Emoji表情列表。但是个人觉得不是很好用,还是前端使用方便一点,他这个你需要改一下源码,一次性获取所有的Emoji表情!
5、php转义emoji表情,让其可以存入utf8的数据库,解决存储通讯录或者聊天记录数据丢失问题!
emoji默认是不能存入mysql数据库的,使用如下代码过滤一下
<?php
function utf8_to_unicode_str($utf8)
{
$return = '';
for ($i = 0; $i < mb_strlen($utf8); $i++) {
$char = mb_substr($utf8, $i, 1);
// 3字节是汉字,不转换,4字节才是 emoji
if (strlen($char) > 3) {
$char = trim(json_encode($char), '"');
}
$return .= $char;
}
return $return;
}
$t = '我爱吃/特殊符号/啦!';
var_dump(utf8_to_unicode_str($t));
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
oppo手机默认浏览器urlscheme 2025-02-13
热门文章
-
oppo手机默认浏览器urlscheme 2025-02-13
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
-
electron安装使用better-sqlite3并解决NODE_MODULE_VERSION xxx. This version of Node.js requires 2024-11-06
更多相关好文