在php中使用mb_strlen()函數和mb_substr()函數____函數

來源:互聯網
上載者:User

php預設是不支援mb_strlen()函數的,需要安裝擴充模組。安裝方法如下:

yum install php-mbstring

找到mbstring.so的位置,可以使用rpm -ql 安裝的rpm名

修改/etc/php.ini設定檔,增加

extension=php_mbstring.so

並確保php_mbstring.so模組在extension_dir = "/usr/lib64/php/modules"配置所指的路徑裡。

原文:http://cyibeike.blog.163.com/blog/static/21112578201252032759277/


當字元全是英文字元的時候,兩者是一樣。這裡主要比較一下,中英文混排的時候,兩個計算結果。(測試時編碼方式是UTF8) 

<?php $str=‘中文a字1符‘; echo strlen($str); echo ‘<br />‘; echo mb_strlen($str,‘UTF8‘); //輸出結果 //14 //6 ?> 


結果分析:在strlen計算時,對待一個UTF8的中文字元是3個長度,所以“中文a字1符”長度是3*4+2=14
在mb_strlen計算時,選定內碼為UTF8,則會將一個中文字元當作長度1來計算,所以“中文a字1符”長度是6 

引用自:http://www.jb51.net/article/19078.htm

mb_substr()函數的使用:

PHP截取字串的函數有:substr() / mb_substr() / mb_strcut()

這些字串的區別是什麼呢。 substr()函數分割包括中文字元往往會遇到亂碼問題 而mb_substr()分割中文字串就不會有亂碼問題 同樣的是用mb_strcut()分割中文字串也沒有亂碼的問題

mb_substr()、mb_strcut的用法與substr()相似,只是在mb_substr()、mb_strcut()函數後面要指定字串的編碼。mb_substr()、mb_strcut函數是需要開啟伺服器的php_mbstring.dll,在php.ini在把php_mbstring.dll開啟即可。

 

mb_substr是按字元分割,而mb_strcut是按位元組來分割,但是都不會產生半個字元的現象。

例如: $aaa = "this這是中文字串"; echo mb_substr($aaa,0,6,'UTF-8');//輸出值為: this這是 echo mb_strcut($aaa,0,6,'UTF-8');//輸出值為:this這 引用自: http://www.lao8.org/html/8/2011-9-4/mb_substr.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.