mysql - 如何用PHP匹配并替换iOS标准的emoji表情符号
遇到一个问题,要储存iOS键盘输出的emoji表情到MySQL,我知道用blob+utf8是可以存的。但是现在我的这张表已经太大了,不可能去改类型。所以就想把emoji表情匹配出来,替换掉,再存。
但是,iOS键盘输入的emoji表情,并不是标准的0xe001 - 0xe537这种,而是变化过的。
例如:第一个大笑的表情,标准emoji unicode是 0xe415 而iOS键盘输出的是 0xd83dxde04 两位。
我用preg_match() 去做匹配
preg_match('/\\x{d83d}\\x{de04}/', $str_with_emoji_emotion, $matches); var_dump($matches);
打印出来是个 NULL
求助各位大神,怎么才能匹配这种表情符号啊。。。
补充:我用 preg_match('/[\x{0000}-\x{FFFF}]/u', $str_with_emoji_emotion, $matches); 去匹配都匹配不到。。。我怀疑是这个表情符号的问题,继续研究。。。继续求解。。。
补充2:今天搞定了,做了 bin2hex 的转码 http://jiajun.org/g/emoji_encoder.php
回复内容:
遇到一个问题,要储存iOS键盘输出的emoji表情到MySQL,我知道用blob+utf8是可以存的。但是现在我的这张表已经太大了,不可能去改类型。所以就想把emoji表情匹配出来,替换掉,再存。
但是,iOS键盘输入的emoji表情,并不是标准的0xe001 - 0xe537这种,而是变化过的。
例如:第一个大笑的表情,标准emoji unicode是 0xe415 而iOS键盘输出的是 0xd83dxde04 两位。
我用preg_match() 去做匹配
preg_match('/\\x{d83d}\\x{de04}/', $str_with_emoji_emotion, $matches); var_dump($matches);
打印出来是个 NULL
求助各位大神,怎么才能匹配这种表情符号啊。。。
补充:我用 preg_match('/[\x{0000}-\x{FFFF}]/u', $str_with_emoji_emotion, $matches); 去匹配都匹配不到。。。我怀疑是这个表情符号的问题,继续研究。。。继续求解。。。
补充2:今天搞定了,做了 bin2hex 的转码 http://jiajun.org/g/emoji_encoder.php
今天搞定了,做了 bin2hex 的转码 http://jiajun.org/g/emoji_encoder.php
试试这个
preg_match('/\x{d83d}\x{de04}/u', $str_with_smail_emotion, $matches);
其实已经有个开源转换程序了。
http://code.iamcal.com/php/emoji/
https://github.com/iamcal/php-emoji
希望这个能帮到你。
http://stackoverflow.com/questions/12807176/php-writing-a-simple-removeemoji-function#
参考这篇文章 http://www.bubuko.com/infodetail-1022211.html
里边推导了一个公式,可以把 0xd83d0xde04 转成 1f604 ,而 U+1F604 就是 Unified 编码的笑脸表情代码。
文中是 js 的函数,我提取出来了关键几行代码,转成 PHP 代码如下:
$h = 0xd83d; //高位
$l = 0xde04; //低位
$code = ($h - 0xD800) * 0x400 + 0x10000 + $l - 0xDC00; // 转换算法
echo "U+" . strtoupper(dechex($code));
//echo 结果是 U+1F604
另外不同编码方式的转换,@seeyoup 已经说了

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MySQL和phpMyAdmin是强大的数据库管理工具。1)MySQL用于创建数据库和表、执行DML和SQL查询。2)phpMyAdmin提供直观界面进行数据库管理、表结构管理、数据操作和用户权限管理。

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。 MySQL以其高性能、可扩展性和跨平台支持着称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

文章摘要:本文提供了详细分步说明,指导读者如何轻松安装 Laravel 框架。Laravel 是一个功能强大的 PHP 框架,它 упростил 和加快了 web 应用程序的开发过程。本教程涵盖了从系统要求到配置数据库和设置路由等各个方面的安装过程。通过遵循这些步骤,读者可以快速高效地为他们的 Laravel 项目打下坚实的基础。

IIS和PHP可以兼容,通过FastCGI实现。1.IIS通过配置文件将.php文件请求转发给FastCGI模块。2.FastCGI模块启动PHP进程处理请求,提高性能和稳定性。3.实际应用中需注意配置细节、错误调试和性能优化。

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

安全地处理JSON中的函数和正则表达式在前端开发中,经常需要将JavaScript...

MySQL和MariaDB的主要区别在于性能、功能和许可证:1.MySQL由Oracle开发,MariaDB是其分支。2.MariaDB在高负载环境中性能可能更好。3.MariaDB提供了更多的存储引擎和功能。4.MySQL采用双重许可证,MariaDB完全开源。选择时应考虑现有基础设施、性能需求、功能需求和许可证成本。
