這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)php substr函數(shù)截取中文亂碼該如何解決,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

臨邑ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
php substr函數(shù)截取中文出現(xiàn)亂碼是因為substr函數(shù)會把一個UTF-8的中文字符當(dāng)做3個字節(jié)來處理,其解決亂碼的方法就是更換使用mb_strlen和mb_substr函數(shù)即可。
本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1、Dell G3電腦。
php substr函數(shù)截取中文亂碼怎么辦?
PHP中substr截取中文亂碼解決方案
在PHP中經(jīng)常使用substr來進行字符串的截取,但是當(dāng)我們用它來實現(xiàn)對中文字符進行截取的時候則會發(fā)生亂碼問題,比如說:
<?php $mystring="今天天氣真好"; $mysubstring=substr($mystring,0,2); echo $mysubstring; ?>
輸出結(jié)果為?;
原因分析:substr函數(shù)原型為:string substr ( string $string , int $start [, int $length ] ),其中$length表示返回字節(jié)長度,而一個中文占兩個字節(jié),對于一個UTF-8的中文字符,會把它當(dāng)做3個字節(jié)來處理。
<?php $length=strlen($mystring);echo $length;//輸出結(jié)果為18 ?>
也就是說我們可以用令$length為3,這樣就會成功返回一個“今”字。這樣的話如果中文和英文混雜的話則需要我們好好地計算一下$length了。
那么有更好的解決辦法嗎?Php給出了另外的函數(shù)mb_strlen和mb_substr
<?php $length=mb_strlen($mystring); $mysub=mb_substr($mystring,0,4); echo "the length is:$length,","the substr is:$mysub"; ?>
輸出結(jié)果為:the length is:6,the substr is:今天天氣
mb_strlen函數(shù)原型為int mb_strlen(string string_input, string encode);encode默認為UTF-8,它會將為UTF-8編碼的中文字符算作一個
注意:mb_strlen與mb_substr并不是PHP的核心函數(shù),使用前需要打開php.ini中的extension=php_mbstring.dll這一項
上述就是小編為大家分享的php substr函數(shù)截取中文亂碼該如何解決了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標題:phpsubstr函數(shù)截取中文亂碼該如何解決
本文鏈接:http://www.chinadenli.net/article18/jdhedp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、服務(wù)器托管、外貿(mào)建站、微信小程序、域名注冊、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)