程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 淺析PHP substr,mb_substr以及mb_strcut的區別和用法

淺析PHP substr,mb_substr以及mb_strcut的區別和用法

編輯:PHP綜合
PHP substr()函數可以 分割文字,但要分割的文字如果包括中文字符往往會遇到問題,這時可以用mb_substr()/mb_strcut這個函數,mb_substr() /mb_strcut的用法與substr()相似,只是在mb_substr()/mb_strcut最後要加入多一個參數,以設定字符串的編碼,但是 一般的服務器都沒打開php_mbstring.dll,需要在php.ini在把php_mbstring.dll打開。
舉個例子:
復制代碼 代碼如下:
<?php
echo mb_substr('這樣一來我的字符串就不會有亂碼^_^', 0, 7, 'utf-8');
?>

輸出:這樣一來我的字
復制代碼 代碼如下:
<?php
echo mb_strcut('這樣一來我的字符串就不會有亂碼^_^', 0, 7, 'utf-8');
?>

輸出:這樣一
從上面的例子可以看出,mb_substr是按字來切分字符,而mb_strcut是按字節來切分字符,但是都不會產生半個字符的現象……
mbstring 函數的說明:
php的mbstring擴展模塊提供了多字節字符的處理能力,平常最常用的就是用mbstring來切分多字節的中文字符,這樣可以避免出現半個字符的情況,由於是php的擴展,它的性能也要比一些自定義的多字節切分函數要好上一些。
mbstring extension提供了幾個功能類似的函數,mb_substr和mb_strcut,看看手冊上對它們的解釋。
復制代碼 代碼如下:
mb_substr
mb_substr() returns the portion of str specified by the start and length parameters.
mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.
mb_strcut
mb_strcut() returns the portion of str specified by the start and length parameters.
mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.
It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.

再舉個例子,有一段文字, 分別用mb_substr和mb_strcut來做切分:
PLAIN TEXT
CODE:
復制代碼 代碼如下:
<?php
$str = '我是一串比較長的中文-www.webjx.com';
echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');
echo "<br>";
echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
?>

輸出結果如下:
mb_substr:我是一串比較
mb_strcut:我是
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved