php将emoji表情进行过滤,js过滤emoji表情

本文目录一览:

php怎样过滤掉特殊字符啊 ☺

过滤掉特殊字符,可以考虑使用字符串替换的方法,在php中替换字符效率最高也是最简单字符替换函数str_replace函数。

使用方法:str_replace(find,replace,string,count)

参数说明:

  find 必需。规定要查找的值。 

  replace 必需。规定替换 find 中的值的值。

  string 必需。规定被搜索的字符串。

 count 可选。一个变量,对替换数进行计数。

实例:

str_replace(“iwind”, “kiki”, “i love iwind, iwind said”);

将输出 “i love kiki, kiki said”

当然你也可以采取正则替换的方法,该函数是preg_replace

js 怎么把emoji表情给过滤掉

1,确定你的emoji的引入途径或者是否在项目内部加载了这个插件;

2,找到emoji引入的途径,把它关闭,并在JS代码内删除引入emoji的调用方法

3,把该表情的HTML部分删除或者设置为隐藏

4,如果你以上3步都没办法做到,那么可以考虑直接找到emoji表情存放页面的HTML直接删除甚至使用DIV覆盖(不推荐)

求php过滤ios的Emoji表情的方法,如果字符串中包含Emoji表情就删除。

网上已经有开源的了! 你参考下

iOS 5.0之前,苹果都是采用3个字节来承接 emoji 表情,Java 的普通 char 可以支持显示。但 iOS 5.0 之后, 苹果升级了系统自带的 emoji 表情输入法,用的 Unicode 6 标准来统一,是采用4个 bytes 来承接一个 emoji 表情。如果不做处理的话,这种表情直接存储到 mysql5.5 以下的数据库是会报错的。就像这两个表情一样:口口, 在 Windows 8 以下估计都不支持显示,可能会显示成框框,可能压根就是空白, 你可以在 Mac 中使用Safari 浏览器中,就可以看到。经过测试,在 Mac 就算用 Chrome 浏览器(Version 25.0.1364.172)也是不行的。

这种数据在 Mysql 5.5 之前,UTF-8 支持1-3个字节的编码,从 Mysql5.5 开始后,可以支持4个字节的 UTF 编码,但要特殊标记。修改 Mysql 相应存储字段为 utf8mb4 。修改语句如下:

1 ALTER TABLE table_name

2 MODIFY COLUMN content varchar(500) CHARACTER

3 SET utf8mb4 COLLATE utf8mb4_unicode_ci

4 DEFAULT NULL COMMENT ‘content of message’;

在某种业务情景下,我们可以选择过滤掉这种“非法”的字符。我采用的方式是,在字符上面做操作,下面是Java示例代码,核心的代码附上,应该是 无法直接下载就能够编译,你得小小的做一些微调,没有额外的依赖:

01 public class EmojiFilter {

02

03 /**

04 * 检测是否有emoji字符

05 * @param source

06 * @return 一旦含有就抛出

07 */

08 public static boolean containsEmoji(String source) {

09 if (StringUtils.isBlank(source)) {

10 return false;

11 }

12

13 int len = source.length();

14

15 for (int i = 0; i len; i++) {

16 char codePoint = source.charAt(i);

17

18 if (isEmojiCharacter(codePoint)) {

19 //do nothing,判断到了这里表明,确认有表情字符

20 return true;

21 }

22 }

23

24 return false;

25 }

26

27 private static boolean isEmojiCharacter(char codePoint) {

28 return (codePoint == 0x0) ||

29 (codePoint == 0x9) ||

30 (codePoint == 0xA) ||

31 (codePoint == 0xD) ||

32 ((codePoint = 0x20) (codePoint = 0xD7FF)) ||

33 ((codePoint = 0xE000) (codePoint = 0xFFFD)) ||

34 ((codePoint = 0x10000) (codePoint = 0x10FFFF));

35 }

36

37 /**

38 * 过滤emoji 或者 其他非文字类型的字符

39 * @param source

40 * @return

41 */

42 public static String filterEmoji(String source) {

43

44 if (!containsEmoji(source)) {

45 return source;//如果不包含,直接返回

46 }

47 //到这里铁定包含

48 StringBuilder buf = null;

49

50 int len = source.length();

51

52 for (int i = 0; i len; i++) {

53 char codePoint = source.charAt(i);

54

55 if (isEmojiCharacter(codePoint)) {

56 if (buf == null) {

57 buf = new StringBuilder(source.length());

58 }

59

60 buf.append(codePoint);

61 } else {

62 }

63 }

64

65 if (buf == null) {

66 return source;//如果没有找到 emoji表情,则返回源字符串

67 } else {

68 if (buf.length() == len) {//这里的意义在于尽可能少的toString,因为会重新生成字符串

69 buf = null;

70 return source;

71 } else {

72 return buf.toString();

73 }

74 }

75

76 }

77 }

还有优化的空间,但是已经能够满足大多数情况的需求,附上单元测试(JUnit4):

01 public class EmojiFilterTest {

02

03

04 /**

05 * 测试emoji表情

06 */

07 @Test

08 public void fileterEmoji() {

09 String s = “body口口213这是一个有各种内容的消息, Hia Hia Hia !!!! xxxx@@@…*)!” +

10 “(@*$@(!)@*)!$!)@^%@(!. 口口口], “;

11 String c = Utils.filterEmoji(s);

12 assertFalse(s.equals(c));

13 String expected = “body213这是一个有各种内容的消息, Hia Hia Hia !!!! xxxx@@@…*)” +

14 “!(@*$@(!)@*)!$!)@^%@(!. ], “;

15 assertEquals(expected, c);

16 // assertSame(c, expected);

17 assertSame(expected, “body213这是一个有各种内容的消息, Hia Hia Hia !!!! xxxx@@@…*)” +

18 “!(@*$@(!)@*)!$!)@^%@(!. ], “);

19 assertSame(c, Utils.filterEmoji(c));

20 }

21

22 }

php的preg_replace过滤emoji字符,要怎么做

PHP的preg_replace函数是  执行一个正则表达式的搜索和替换其具体用法如下

语法:

preg_replace (正则表达式, 替换成, 字符串, 最大替换次数【默认-1,无数次】, 替换次数)

实例:

?php// 把heigth高度属性删除,并添加width=”100%”

$str = ‘divp12312321/pimg src=”xx.jpg” height=”213″ /span111/spanimg src=”xz.jpg” //div’;

$str = preg_replace(“/height\=\”[0-9]+?\”/”,””,$str);

$str1 = preg_replace(“/src=\”(.+?)\”/”,”src=\”$1\” width=\”100%\””,$str);

print_r($str1);

?

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/190350.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-29 22:32
下一篇 2024-11-29 22:32

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的解决方法

    本文将解决Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的问题。同时,给出一些相关示例代码,以帮助读者更好的理解并处理这个问题。 一、问题解…

    编程 2025-04-29
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • JS图片沿着SVG路径移动实现方法

    本文将为大家详细介绍如何使用JS实现图片沿着SVG路径移动的效果,包括路径制作、路径效果、以及实现代码等内容。 一、路径制作 路径的制作,我们需要使用到SVG,SVG是可缩放矢量图…

    编程 2025-04-27
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • 如何使用JS调用Python脚本

    本文将详细介绍通过JS调用Python脚本的方法,包括使用Node.js、Python shell、child_process等三种方法,以及在Web应用中的应用。 一、使用Nod…

    编程 2025-04-27

发表回复

登录后才能评论