本文目錄一覽:
- 1、_’ title=’請問php 中什麼函數可以過濾掉這個笑臉(>_’>請問php 中什麼函數可以過濾掉這個笑臉(>_
- 2、求php過濾ios的Emoji表情的方法,如果字元串中包含Emoji表情就刪除。
- 3、PHP如何過濾★等特殊符號
- 4、php怎樣過濾掉特殊字元啊 ☺
- 5、PHP字元串中特殊符號的過濾方法介紹
_’>請問php 中什麼函數可以過濾掉這個笑臉(>_
//把 (_)過濾成空就行了。
?php
echo str_replace(“(_)”,””,”Hello (_)!”);
?
求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如何過濾★等特殊符號
我的程序是這樣編寫的,相信你一看就懂:
if(preg_match(“/[ ‘.,:;*?~`!@#$%^+=)({}]|\]|\[|\/|\\\|\”|\|/”,$user)){
echo ‘不要在名字裡面整些特殊符號,請只使用字母、數字和漢字,當然要你的瀏覽器要選簡體中文GB2312喲,千萬不要選繁體、中文HZ等。返回修改後,再來,我等你喲!’;
exit();
}
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
PHP字元串中特殊符號的過濾方法介紹
本篇文章主要是對PHP字元串中特殊符號的過濾方法進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
有時候我們會遇到過濾字元串中特殊字元的問題,本文提供了一個處理特殊字元串的方法,可能有遺漏,如果讀者發現了可以
代碼如下:
function
strFilter($str){
$str
=
str_replace(‘`’,
”,
$str);
$str
=
str_replace(‘·’,
”,
$str);
$str
=
str_replace(‘~’,
”,
$str);
$str
=
str_replace(‘!’,
”,
$str);
$str
=
str_replace(‘!’,
”,
$str);
$str
=
str_replace(‘@’,
”,
$str);
$str
=
str_replace(‘#’,
”,
$str);
$str
=
str_replace(‘$’,
”,
$str);
$str
=
str_replace(‘¥’,
”,
$str);
$str
=
str_replace(‘%’,
”,
$str);
$str
=
str_replace(‘^’,
”,
$str);
$str
=
str_replace(‘……’,
”,
$str);
$str
=
str_replace(”,
”,
$str);
$str
=
str_replace(‘*’,
”,
$str);
$str
=
str_replace(‘(‘,
”,
$str);
$str
=
str_replace(‘)’,
”,
$str);
$str
=
str_replace(‘(’,
”,
$str);
$str
=
str_replace(‘)’,
”,
$str);
$str
=
str_replace(‘-‘,
”,
$str);
$str
=
str_replace(‘_’,
”,
$str);
$str
=
str_replace(‘——’,
”,
$str);
$str
=
str_replace(‘+’,
”,
$str);
$str
=
str_replace(‘=’,
”,
$str);
$str
=
str_replace(‘|’,
”,
$str);
$str
=
str_replace(”,
”,
$str);
$str
=
str_replace(‘[‘,
”,
$str);
$str
=
str_replace(‘]’,
”,
$str);
$str
=
str_replace(‘【’,
”,
$str);
$str
=
str_replace(‘】’,
”,
$str);
$str
=
str_replace(‘{‘,
”,
$str);
$str
=
str_replace(‘}’,
”,
$str);
$str
=
str_replace(‘;’,
”,
$str);
$str
=
str_replace(‘;’,
”,
$str);
$str
=
str_replace(‘:’,
”,
$str);
$str
=
str_replace(‘:’,
”,
$str);
$str
=
str_replace(”’,
”,
$str);
$str
=
str_replace(‘”‘,
”,
$str);
$str
=
str_replace(‘「’,
”,
$str);
$str
=
str_replace(‘」’,
”,
$str);
$str
=
str_replace(‘,’,
”,
$str);
$str
=
str_replace(‘,’,
”,
$str);
$str
=
str_replace(”,
”,
$str);
$str
=
str_replace(”,
”,
$str);
$str
=
str_replace(‘《’,
”,
$str);
$str
=
str_replace(‘》’,
”,
$str);
$str
=
str_replace(‘.’,
”,
$str);
$str
=
str_replace(‘。’,
”,
$str);
$str
=
str_replace(‘/’,
”,
$str);
$str
=
str_replace(‘、’,
”,
$str);
$str
=
str_replace(‘?’,
”,
$str);
$str
=
str_replace(‘?’,
”,
$str);
return
trim($str);
}
原創文章,作者:ZDLCS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331305.html