程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP函數mb_strcut的使用技巧分享

PHP函數mb_strcut的使用技巧分享

編輯:關於PHP編程

我們在進行PHP函數mb_strcut,他們兩個的用法與substr()相似,只是在PHP函數mb_strcut最後要加入多一個參數,以設定字符串的編碼,但是一般的服務器都沒打開php_mbstring.dll,需要在php.ini在把php_mbstring.dll打開,如果我們不確定有沒有開啟這功能,那麼我們最好先判斷一下,if(function_exist(mb_string)).

舉個例子:

  1. < ?php 
  2. echo mb_substr('這樣一來我的字符串
    就不會有亂碼^_^', 0, 7, 'utf-8');  
  3. ?> 

輸出:這樣一來我的字

PHP函數mb_strcut的示例

  1. < ?php 
  2. echo mb_strcut('這樣一來我的字符串就不會有亂碼^_^', 0, 7, 'utf-8');  
  3. ?> 

輸出:這樣一

從上面的例子可以看出,mb_substr是按字來切分字符,而PHP函數mb_strcut是按字節來切分字符,但是都不會產生半個字符的現象,但是有時候在輸出的時候也會出現截取的東西不正確,有的是對的有的不對,而且中文還出現亂碼,這些現象產生的主要原因是你的這個函數的編方式和你顯示他的網頁的編碼方式不一致而導致的。
這裡還介紹一個PHP截取中文字符串的自定義函數:

PHP實現中文字串截取無亂碼的方法

  1. function GBsubstr($string, $start, $length) {  
  2. if(strlen($string)>$length){  
  3. $str=null;  
  4. $len=$start+$length;  
  5. for($i=$start;$i<$len;$i++){  
  6. if(ord(substr($string,$i,1))>0xa0){  
  7. $str.=substr($string,$i,2);  
  8. $i++;  
  9. }else{  
  10. $str.=substr($string,$i,1);  
  11. }  
  12. }  
  13. return $str.'...';  
  14. }else{  
  15. return $string;  
  16. }  

以上就是出現亂碼後使用PHP函數mb_strcut解決問題的主要步驟。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved