mb_substr函數是substr函數的升級版,mb_substr支持中文截取並且不會出現亂碼問題,下面我來介紹一下mb_substr基礎知識。
例
代碼如下 復制代碼<?php
$str = ‘這樣一來我的字符串就不會有亂碼^_^’;
echo “mb_substr:” . mb_substr($str, 0, 7, ‘utf-8′);
//結果:這樣一來我的字
echo “<br>”;
echo “mb_strcut:” . mb_strcut($str, 0, 6, ‘utf-8′);
//結果:這樣
?>
從上面的例子可以看出,mb_substr是按字來切分字符,而mb_strcut是按字節來切分字符,但是都不會產生半個字符的現象。
在實際使用過程中需要和mb_strlen配合使用,mb_strlen的使用方法和strlen類似,只是多了一個編碼參數:mb_strlen("我是要被計算長度的字符", "gbk");結果是11。
詳細的使用例子:
比如字符串超過20個就需要截取:
代碼如下 復制代碼if(mb_strlen($str, "gbk") >20)
{
$str = mb_substr($str, 0, 20, "gbk");
}
注意:
確保你的Windows/system32下有php_mbstring.dll這個文件,沒有就從你Php安裝目錄extensions裡拷入Windows/system32裡面。
2.在windows目錄下找到php.ini打開編輯,搜索mbstring.dll,找到
;extension=php_mbstring.dll把前面的;號去掉,這樣mb_substr函數就可以生效了