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/zh-hant/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

發表回復

登錄後才能評論