溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mb_substr函數(shù)如何在php中使用

發(fā)布時間:2021-04-01 17:27:53 來源:億速云 閱讀:189 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了mb_substr函數(shù)如何在php中使用,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )-截取字符串

(PHP 4 >= 4.0.6, PHP 5)

$str 要獲取字符串的目標(biāo)字符串(字符串起始位置為0)
$start,$str中要使用的第一個字符的位置
$length,獲取的子字符串的長度(注意不是結(jié)束位置)
$encoding,可指定字符編碼(一般用于處理中文字符時使用,同時這個問題碰到的非常多)

示例:

<?php
mb_internal_encoding ("UTF-8");  //如果把UTF-8改為編碼,下面針對于中文字符串處理的值會改變。
echo mb_internal_encoding()."";  //獲取字符編碼為ISO-8859-1
echo mb_substr('abcdefghijk',0,9)."";  //abcdefghi
echo mb_substr('abcdefghijk',1,5)."";  //bcdef
echo mb_substr('我們都是中國人',0,9)."";  //我們都是中國人
echo mb_substr('我們都是中國人',0,9,'gb2312')."";  //我們都是中
echo mb_substr('我們都是中國人',0,9,'utf-8');  //我們都是中國人
?>

總結(jié):

1、在處理英文字符串的時候,該函數(shù)的第四個參數(shù)($encoding)可以忽略。
2、在處理中文字符串的時候,就要小心了,一定要考慮編碼問題,編碼不同,中文的值也不同。
3、在中文字符串導(dǎo)入數(shù)據(jù)庫時,就顯得更為重要了。
4、處理字符串或文本的編碼能力,是衡量程序員功力的一項標(biāo)準(zhǔn)。

補(bǔ)充:substr和mb_substr的區(qū)別

異同點(diǎn):

兩個函數(shù)都是截取字符串的長度,不同的是mb_substr可以針對多字節(jié)編碼的漢字進(jìn)行截取,從而防止亂碼的出現(xiàn)

實例說明:

示例1:

<?php
$chuan="我是中國人!";
echo substr($chuan,0,3);
echo '<br />';
echo mb_substr($chuan,0,3,'utf8');
?>

運(yùn)行結(jié)果:


我是中

在utf8編碼下,由于一個漢字占3個字節(jié),所以第一個輸出的是: 我
第二個輸出的是: 我是中

示例2:

<?php
$chuan="我是中國人!";
echo substr($chuan,0,-4);
echo '<br />';
echo mb_substr($chuan,0,-2,'utf8');
?>

運(yùn)行結(jié)果:

我是中國
我是中國

上述內(nèi)容就是mb_substr函數(shù)如何在php中使用,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI