老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

php如何刪除非utf8字符

小編給大家分享一下php如何刪除非utf8字符,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司主營(yíng)鎮(zhèn)原網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā),鎮(zhèn)原h(huán)5成都小程序開發(fā)搭建,鎮(zhèn)原網(wǎng)站營(yíng)銷推廣歡迎鎮(zhèn)原等地區(qū)企業(yè)咨詢

php刪除非utf8字符的方法:首先創(chuàng)建一個(gè)PHP示例文件;然后使用正則表達(dá)式“preg_replace($regex, '$1', $text);”方法刪除非utf8字符即可。

本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦

具體問題:

php怎么刪除非utf8字符?

php 從字符串中刪除非UTF8字符

我在從字符串中刪除非utf8字符時(shí)出現(xiàn)問題,這些字符無法正確顯示。像這樣的字符0x97 0x61 0x6C 0x6F(十六進(jìn)制表示)

刪除它們的最佳方法是什么?正則表達(dá)式還是其他?

解決辦法:

使用正則表達(dá)式方法:

$regex = <<<'END'
/
  (
    (?: [\x00-\x7F]                 # single-byte sequences   0xxxxxxx
    |   [\xC0-\xDF][\x80-\xBF]      # double-byte sequences   110xxxxx 10xxxxxx
    |   [\xE0-\xEF][\x80-\xBF]{2}   # triple-byte sequences   1110xxxx 10xxxxxx * 2
    |   [\xF0-\xF7][\x80-\xBF]{3}   # quadruple-byte sequence 11110xxx 10xxxxxx * 3 
    ){1,100}                        # ...one or more times
  )
| .                                 # anything else
/x
END;
preg_replace($regex, '$1', $text);

它搜索UTF-8序列,并將其捕獲到組1中。它還匹配無法識(shí)別為UTF-8序列的一部分的單個(gè)字節(jié),但不捕獲這些字節(jié)。替換是捕獲到組1中的任何內(nèi)容。這將有效刪除所有無效字節(jié)。

通過將無效字節(jié)編碼為UTF-8字符,可以修復(fù)字符串。但是,如果錯(cuò)誤是隨機(jī)的,則可能會(huì)留下一些奇怪的符號(hào)。

$regex = <<<'END'
/
  (
    (?: [\x00-\x7F]               # single-byte sequences   0xxxxxxx
    |   [\xC0-\xDF][\x80-\xBF]    # double-byte sequences   110xxxxx 10xxxxxx
    |   [\xE0-\xEF][\x80-\xBF]{2} # triple-byte sequences   1110xxxx 10xxxxxx * 2
    |   [\xF0-\xF7][\x80-\xBF]{3} # quadruple-byte sequence 11110xxx 10xxxxxx * 3 
    ){1,100}                      # ...one or more times
  )
| ( [\x80-\xBF] )                 # invalid byte in range 10000000 - 10111111
| ( [\xC0-\xFF] )                 # invalid byte in range 11000000 - 11111111
/x
END;
function utf8replacer($captures) {
  if ($captures[1] != "") {
    // Valid byte sequence. Return unmodified.
    return $captures[1];
  }
  elseif ($captures[2] != "") {
    // Invalid byte of the form 10xxxxxx.
    // Encode as 11000010 10xxxxxx.
    return "\xC2".$captures[2];
  }
  else {
    // Invalid byte of the form 11xxxxxx.
    // Encode as 11000011 10xxxxxx.
    return "\xC3".chr(ord($captures[3])-64);
  }
}
preg_replace_callback($regex, "utf8replacer", $text);

編輯:

  • !empty(x)將匹配非空值("0"被認(rèn)為是空的)。

  • x != ""將匹配非空值,包括"0"。

  • x !== ""將匹配""以外的任何內(nèi)容。

在這種情況下,x != ""似乎是最好的選擇。

我也加快了比賽速度。而不是單獨(dú)匹配每個(gè)字符,它匹配有效的UTF-8字符序列。

以上是“php如何刪除非utf8字符”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章名稱:php如何刪除非utf8字符
當(dāng)前網(wǎng)址:http://www.xueling.net.cn/article/poghip.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 影音先锋中文字幕人妻 | 国产精品久久香蕉 | 亚洲小说图片 | 羞羞影院午夜男女爽爽视频免费 | 久久亚洲精品国产精品 | 99精品国产一区 | 91麻豆精品国产片在线观看 | 国产日韩欧美视频 | 中国黄色片在线观看 | 亚洲AV日韩AV男人的天堂在线 | 亚洲第一精品夜夜躁人人爽 | 国产一级黄色片免费看 | 同性男男黄gay片免费 | 国产精品一品二区三区四区18 | 色婷婷一区二区三区在线观看 | 老司机精品久久 | 国产丰满果冻videossex | 8x拔播拔播x8国产精品 | a在线视频播放观看免费观看 | 久色视频 | 午夜精品久久久久久99热软件 | 四虎海外网址 | 欧美丝袜一区二区三区 | 久久精品视频69 | 11nvnv女女网导航永久 | 亚洲第一福利网站在线 | 国产特级毛片aaaaaaa高清 | 视频一区中文字幕精品 | 台湾中文佬娱乐网 | 成全视频免费观看在线看黑人 | 永久免费观看美女裸体的网站 | 中文字幕人成乱码熟女 | 亚洲美女黄色 | 欧美日韩在线视频首页 | 无码精品人妻一区二区三区人妻斩 | 久久人妻无码中文字幕 | 麻豆视频国产在线观看 | 午夜精品久久久久久久99热 | 国产午夜免费高清久久影院 | 午夜视频体内射.COM.COM | 性一交一无一伦一精一品 |