我們在進行PHP函數mb_strcut,他們兩個的用法與substr()相似,只是在PHP函數mb_strcut最後要加入多一個參數,以設定字符串的編碼,但是一般的服務器都沒打開php_mbstring.dll,需要在php.ini在把php_mbstring.dll打開,如果我們不確定有沒有開啟這功能,那麼我們最好先判斷一下,if(function_exist(mb_string)).
舉個例子:
- < ?php
- echo mb_substr('這樣一來我的字符串
就不會有亂碼^_^', 0, 7, 'utf-8');- ?>
輸出:這樣一來我的字
PHP函數mb_strcut的示例
- < ?php
- echo mb_strcut('這樣一來我的字符串就不會有亂碼^_^', 0, 7, 'utf-8');
- ?>
輸出:這樣一
從上面的例子可以看出,mb_substr是按字來切分字符,而PHP函數mb_strcut是按字節來切分字符,但是都不會產生半個字符的現象,但是有時候在輸出的時候也會出現截取的東西不正確,有的是對的有的不對,而且中文還出現亂碼,這些現象產生的主要原因是你的這個函數的編方式和你顯示他的網頁的編碼方式不一致而導致的。
這裡還介紹一個PHP截取中文字符串的自定義函數:
PHP實現中文字串截取無亂碼的方法
- function GBsubstr($string, $start, $length) {
- if(strlen($string)>$length){
- $str=null;
- $len=$start+$length;
- for($i=$start;$i<$len;$i++){
- if(ord(substr($string,$i,1))>0xa0){
- $str.=substr($string,$i,2);
- $i++;
- }else{
- $str.=substr($string,$i,1);
- }
- }
- return $str.'...';
- }else{
- return $string;
- }
- }
以上就是出現亂碼後使用PHP函數mb_strcut解決問題的主要步驟。