完美的2個(gè)php檢測(cè)字符串是否是utf-8編碼函數(shù)分享
在php開(kāi)發(fā)中有時(shí)候會(huì)用到轉(zhuǎn)碼函數(shù),比如iconv(),mb_convert_encoding()函數(shù),在用函數(shù)轉(zhuǎn)碼的時(shí)候或者解碼的時(shí)候我們有時(shí)候需要先判斷當(dāng)前字符串編碼類(lèi)型,不如是否是utf-8編碼,是的話然后進(jìn)行編碼轉(zhuǎn)換等操作。下面是小編整理的目前web開(kāi)發(fā)中網(wǎng)上使用率比較高的、好的php關(guān)于UTF-8編碼的判斷函數(shù),代碼如下:
function is_utf8($string) //函數(shù)一 { // From http://w3.org/International/questions/qa-forms-utf-8.html return preg_match(‘%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string); } function mb_is_utf8($string) //函數(shù)二 { return mb_detect_encoding($string, ‘UTF-8′) === ‘UTF-8′; }
mb_detect_encoding()函數(shù)是php的一個(gè)內(nèi)置函數(shù),用來(lái)判斷當(dāng)前字符串編碼類(lèi)型,此函數(shù)有三個(gè)參數(shù),第一個(gè)參數(shù)是要判斷的字符串,第二個(gè)參數(shù)是比較的字符編碼列表,可以使字符串,也可以是數(shù)組,第三個(gè)參數(shù)是要求。
希望這兩個(gè)函數(shù)對(duì)需要的Phper有所幫助。
相關(guān)文章
Yii2框架實(shí)現(xiàn)利用mpdf創(chuàng)建pdf文件功能示例
這篇文章主要介紹了Yii2框架實(shí)現(xiàn)利用mpdf創(chuàng)建pdf文件功能,結(jié)合實(shí)例形式分析了mpdf的下載、安裝及結(jié)合Yii2框架創(chuàng)建pdf文件的相關(guān)操作技巧,需要的朋友可以參考下2019-02-02php開(kāi)發(fā)最強(qiáng)大的IDE編輯的phpstorm 2020.2配置Xdebug調(diào)試的詳細(xì)教程
這篇文章主要介紹了php開(kāi)發(fā)最強(qiáng)大的IDE編輯的phpstorm 2020.2配置Xdebug調(diào)試,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Laravel框架運(yùn)行出錯(cuò)提示RuntimeException No application encryption ke
這篇文章主要介紹了Laravel框架運(yùn)行出錯(cuò)提示RuntimeException No application encryption key has been specified.解決方法,涉及Laravel框架相關(guān)配置、設(shè)置與運(yùn)行操作技巧,需要的朋友可以參考下2019-04-04Laravel重定向,a鏈接跳轉(zhuǎn),控制器跳轉(zhuǎn)示例
今天小編就為大家分享一篇Laravel重定向,a鏈接跳轉(zhuǎn),控制器跳轉(zhuǎn)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10Ha0k 0.3 PHP 網(wǎng)頁(yè)木馬修改版
Ha0k 0.3 PHP 網(wǎng)頁(yè)木馬修改版,大家可以看下,對(duì)于此類(lèi)文件的防御方法,可以參考腳本之家發(fā)布的文章。2009-10-10分享微信掃碼支付開(kāi)發(fā)遇到問(wèn)題及解決方案-附Ecshop微信支付插件
微信掃碼支付在購(gòu)物商城非常流行,本篇文章給大家分享微信掃碼支付開(kāi)發(fā)遇到問(wèn)題及解決方案-附Ecshop微信支付插件,需要的朋友可以參考下2015-08-08PHP、Python和Javascript的裝飾器模式對(duì)比
這篇文章主要介紹了PHP、Python和Javascript的裝飾器模式對(duì)比,修飾模式(Decorator Pattern),又叫裝飾者模式,是面向?qū)ο缶幊填I(lǐng)域中,一種動(dòng)態(tài)地往一個(gè)類(lèi)中添加新的行為的設(shè)計(jì)模式,需要的朋友可以參考下2015-02-02cakephp常見(jiàn)知識(shí)點(diǎn)匯總
這篇文章主要介紹了cakephp常見(jiàn)知識(shí)點(diǎn),匯總整理了cakephp的模板、數(shù)據(jù)庫(kù)、日志、表單等相關(guān)操作技巧,需要的朋友可以參考下2017-02-02