vim /php.ini
添加以下内容[carmela] extension=carmela.so方法:carmela_str2ubb: 包含emoji标签的字符串转换成ubb模式,替换后的样子[u]1f464[/u]。一个例子:$str = urldecode(this is test %f0%9f%98%9c+%f0%9f%98%99 by ugg);echo str:.$str.\n;echo ubb:.carmela_str2ubb($str).\n;输出结果:str:this is test xxxx(csdn emoji不能展示用xxxx代替) by uggubb:this is test [u]1f61c[/u] [u]1f619[/u] by uggcarmela_ubb2str:包含ubb标签转换为utf-8字符串格式,针对pc平台的转移,可以参考encode.class.php中的carmela_ubb2str方法。一个例子:$str = urldecode(this is test %f0%9f%98%9c+%f0%9f%98%99 by ugg);$str = carmela_str2ubb($str);echo ubb:.$str.\n;echo str:.carmela_ubb2str($str).\n;输出结果:ubb:this is test [u]1f61c[/u] [u]1f619[/u] by uggstr:this is test(csdn emoji不能展示用xxxx代替) by uggcarmela_substr:截取包含emoji字符的字符串指定长度字符。carmela_sububb:截取包含ubb标签的字符串的指定长度字符。carmela_delstr:删除字符串中的emoji字符,非严格模式,3字节的emoji字符无法删除,主要用在一些。carmela_delubb:删除包含ubb标签字符串中的ubb标签。性能使用php分别实现了两种方法,分别使用php的str_replace方法和php查找四字节emoji,进行替换的方法,以及php扩展方式,使用相同数据分别进行测试,测试效果如下。=========================== 方案1:php str_replace方式 ==================================== emoji to string ==========time:781.94ms,处理行数: 100,处理字数:10100,处理字节数:31028平均每行处理时间:7.819ms=========== string to emoji ==========time:118.566ms,处理行数: 100,处理字数:18710,处理字节数:37793平均每行处理时间:1.186ms=========================== 方案2:php字符查找方式 ==================================== emoji to string ==========time:51.526ms,处理行数: 100,处理字数:10100,处理字节数:31028平均每行处理时间:0.515ms=========== string to emoji ==========time:27.959ms,处理行数: 100,处理字数:23092,处理字节数:41236平均每行处理时间:0.28ms=========================== 方案3:php扩展方式 ==================================== emoji to string ==========time:0.721ms,处理行数: 100,处理字数:10100,处理字节数:31028平均每行处理时间:0.007ms=========== string to emoji ==========time:0.956ms,处理行数: 100,处理字数:20308,处理字节数:38452平均每行处理时间:0.01ms从以上测试效果上来看,str_replace方式,性能非常的差。使用php直接编写替换函数方式,性能提升10倍多,而采用扩展方式后,性能提升明显,在把emoji从字符形式转换为ubb方式时,性能提升1000倍。以上测试数据通过create_file.php可以动态生成。本测试用例,生成100行数据,每行100个字符,100字符中可以包含3-10个emoji字符,进行测试的,直接运行benchmark.php 查看运行性能。原理处理四字节的emoji原理非常简单,通过字符对比找到emoji字符进行替换。难点就是在基本原理上如何提升性能,如何快速查找,替换。php扩展方式,为大家提供了一种思路,可以参考这种思路实现java,c#,js等等版本的。pc如何支持emoji表情展示?在项目目录中的emoji目录下找到images目录,从web根目录创建emoji文件夹,把images文件夹整个拷贝到emoji文件下,调用encode.class.php里面的carmela_ubb2str方法,util_encode::carmela_ubb2str($str, pc);即可在pc上展示emoji表情,目前收集到的845个emoji表情,一些新的表情符号并没有纳入其中,当然,目前这种方法并没有写入php扩展中,性能相对来说并不高。contact ugg.xchj@gmail.com for all questions 以上就介绍了基于php扩展一种处理emoji方法的类库介绍,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。