溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mb_strps,編碼轉(zhuǎn)化 substr(),mb_substr()及mb_strcut函數(shù)用法與區(qū)別

發(fā)布時間:2020-07-04 10:55:07 來源:網(wǎng)絡(luò) 閱讀:634 作者:zhaozhangxiao 欄目:開發(fā)技術(shù)

$b = mb_strpos($name,'曾效力新');

 $encoding = strtoupper(mb_detect_encoding($name, array("UTF-8", "GBK", "GB2312", "BIG5", "ASCII")));

if (strcmp('UTF-8', $encoding) !== 0){

    $content = mb_convert_encoding($name, 'UTF-8', $encoding);

}

substr()函數(shù)

substr(string,start,length)

string表示要截取的對象,start表示從哪個位置開始截取,0表示從頭開始,正數(shù)表示從這個數(shù)的位置后面截取,負數(shù)表示從結(jié)尾算開始截取的位置,但依然是從左到右截,length表示截取長度.負數(shù)表示排除或忽略結(jié)尾多少個字符.比如:

 代碼如下復(fù)制代碼
<?php 
$siteurl = 'www.111cn.net';
print_r (substr($siteurl,4));exit;

//則返回:  111cn.net表示從頭第4個字符開始,返回后面的所有字符.

 代碼如下復(fù)制代碼

<?php 
$siteurl = 'www.111cn.net';
print_r (substr($siteurl,-6,2));exit;

如果要截取雙字節(jié)的漢字.則要用PHP mb_substr函數(shù)或mb_strcut函數(shù),但這兩個函數(shù)依賴php擴展php_mbstring.dll組件,所以要配置你的服務(wù)器.即把php安裝目錄中的php_mbstring.dll文件復(fù)制到你的windows 2003 的c盤的Windows/system32目錄中.


舉個例子:

 代碼如下復(fù)制代碼

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

輸出:這樣一來我的字

 代碼如下復(fù)制代碼

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

輸出:這樣一

從上面的例子可以看出,mb_substr是按字來切分字符,而mb_strcut是按字節(jié)來切分字符,但是都不會產(chǎn)生半個字符的現(xiàn)象……

 代碼如下復(fù)制代碼

<?php
echo mb_substr('飛花院博客feihuayuan',0,9);
//返回: 飛花院

echo mb_substr('飛花院博客feihuayuan',0,9,'utf-8');
//則返回: 飛花院博客feih

mb_strcut('飛花院博客feihuayuan',0,9,'utf-8');
則返回:飛花院
?>

再舉個例子,有一段文字, 分別用mb_substr和mb_strcut來做切分:

PLAIN TEXT
CODE:

 代碼如下復(fù)制代碼

<?php
$str = '我是一串比較長的中文-';

echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');

echo "<br>";

echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
?>

輸出結(jié)果如下:

mb_substr:我是一串比較
mb_strcut:我是

本文章總結(jié)

從上面實例可以看得出來,substr只支持單字節(jié)的,這樣只適合英文截取,而mb_substr函數(shù)是雙字體截取了,正好可用于中文了,而mb_strcut是三字節(jié)了。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI