前言

还有一种解决的方法是更改数据库,这里就不写了,这里直接对emoji进行转码

代码

mb_strlen() | strlen() | rawurlencode() | rawurldecode() | pre_replace_callback()

//对emoji表情转义
function emoji_encode($str){
$strEncode = '';
$length = mb_strlen($str,'utf-8');
for ($i=0; $i < $length; $i++) {
$_tmpStr = mb_substr($str,$i,1,'utf-8');
if(strlen($_tmpStr) >= 4){
$strEncode .= '[[emjoin:'.rawurlencode($_tmpStr).']]';
}else{
$strEncode .= $_tmpStr;
}
}
return $strEncode;
}
//对emoji表情反转义
function emoji_decode($str){
$strDecode = preg_replace_callback('|\[\[emjoin:(.*?)\]\]|', function($matches){
return rawurldecode($matches[1]);
}, $str); return $strDecode;
}

mb_strlen

strlen

rawurlencode

rawurldecode

pre_replace_callback

PHP——emjoin表情存入数据库的更多相关文章

  1. 【记录】微信emoji表情存入数据库

    最近遇到一个问题,在微信授权获取用户信息的时候,由于微信昵称(nickName)是表情,无法存入数据库. 查其原因,原来是因为数据库的编码格式不正确,我的是utf-8 改成utf8mb4就可以了. 其 ...

  2. 解决 emoji表情存入数据库为' ??? '

    今天把mysql切换为mariaDB,这是题外话 主要是emoji标签存入数据库会发现出现三个???的问题 页面上也显示不出来,解决办法只要把内容从数据库里拿出来的时候解码即可 for (Feedba ...

  3. IOS表情存入MYSQL数据库失败

    从 MySQL 5.5.3 开始,MySQL 支持一种 utf8mb4 的字符集,这个字符集能够支持 4 字节的 UTF8 编码的字符. utf8mb4 字符集能够完美地向下兼容 utf8 字符串.在 ...

  4. session 存入数据库 php

     session 机制 1.php中session的生成机制 session是保存在服务器的,当我们在代码中调用session_start();时,PHP会同时往SESSION的存放目录(默认为/tm ...

  5. asp.net将图片转成二进制存入数据库

    一.代码如下 int code = int.Parse(this.TextBox1.Text);//图片编码 string value = this.FileUpload1.PostedFile.Fi ...

  6. 解决:HTML中多文本域(textarea)回车后数据存入数据库,EL表达式取出异常。

    问题描述: 当多文本域(textarea)回车后数据存入数据库. EL表达式取出异常,值换行倒置页面报错. 问题解决: 存值脚本代码,提交前转换\n为<br/>. <script t ...

  7. 使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析

    使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析 因为我在前台使用了jquery的text()方法,而不是html ...

  8. ASP.Net将图片以二进制方式存入数据库,并读取

    把图片转换成二进制--把二进制转换成图片 private void button1_Click(object sender, EventArgs e) { string path = this.tex ...

  9. extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办。。。

    extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办...所以要把它格 ...

随机推荐

  1. 《React Native 精解与实战》书籍连载「Node.js 简介与 React Native 开发环境配置」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  2. python读取/创建XML文件

    Python中定义了很多处理XML的函数,如xml.dom,它会在处理文件之前,将根据xml文件构建的树状数据存在内存.还有xml.sax,它实现了SAX API,这个模块牺牲了便捷性,换取了速度和减 ...

  3. ES优化

    1.内存优化 在bin/elasticsearch.in.sh中进行配置 修改配置项为尽量大的内存: 1 2 ES_MIN_MEM=8g ES_MAX_MEM=8g 两者最好改成一样的,否则容易引发长 ...

  4. 福州大学软件工程1816 | W班 第4次作业(团队展示)成绩排名

    作业链接 评分细则 队员姓名与学号(标记组长),其中4-7人一组,特殊情况经老师允许后可以突破限制:(1分) 队名(体现项目内容,并要求有亮点与个性):(1分) 拟作的团队项目描述:一句话(中英文不限 ...

  5. Linux之hosts文件

    一.序言: 今天同事部署环境遇到问题, 原因1:修改了主机名,在/etc/hosts文件中加了3台集群的ip和主机名,但是将默认的前两行也改了,没注意看改了哪里, 现象: 1.zookeeper单台可 ...

  6. MySQL慢查询日志配置方式 slow_query_log

    MySQL慢查询(一) - 开启慢查询 - 鲁玉成 - 博客园 https://www.cnblogs.com/luyucheng/p/6265594.html mysql开启慢查询方法 - lava ...

  7. centos 检测aufs 并安装

    http://www.cnblogs.com/logo-fox/p/7366506.html 因为DeviceMapper不稳定,所以必须升级到3.10以上的内核,运行docker(2.6提示运行do ...

  8. linux虚拟机桥接网络配置

    版权声明:经验之谈,不知能否换包辣条,另,转载请注明出处. https://blog.csdn.net/zhezhebie/article/details/75035997 前言:我是最小化安装cen ...

  9. vue学习的笔记补充

    // vue-router中可以使用 routes:[ { path:'/', name:'index', component:()=>import('./index') } ] // 这种写法 ...

  10. java.lang包【Object类】

    基本描述: (1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: (2)Object类是所有Java类的祖先.每个类都使用 Obje ...