支持中文和其他編碼的php截取字符串函數(shù)分享(截取中文字符串)
更新時間:2014年03月13日 10:03:45 作者:
這篇文章主要介紹了支持中文和其他編碼的php截取字符串函數(shù)示例(截取中文字符串),需要的朋友可以參考下
簡單的字符串截取方法,支持中文和其他編碼,傳入相對應(yīng)的參數(shù)直接調(diào)用就可以了
復(fù)制代碼 代碼如下:
/**
* 字符串截取,支持中文和其他編碼
* @static
* @access public
* @param string $str 需要轉(zhuǎn)換的字符串
* @param string $start 開始位置
* @param string $length 截取長度
* @param string $charset 編碼格式
* @param string $suffix 截斷顯示字符
* @return string
*/
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
if(function_exists("mb_substr"))
$slice = mb_substr($str, $start, $length, $charset);
elseif(function_exists('iconv_substr')) {
$slice = iconv_substr($str,$start,$length,$charset);
if(false === $slice) {
$slice = '';
}
}else{
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
}
return $suffix ? $slice.'...' : $slice;
}
您可能感興趣的文章:
- PHP中使用substr()截取字符串出現(xiàn)中文亂碼問題該怎么辦
- php mb_substr()函數(shù)截取中文字符串應(yīng)用示例
- php截取中文字符串不亂碼的方法
- PHP中文處理 中文字符串截取(mb_substr)和獲取中文字符串字?jǐn)?shù)
- php中計算中文字符串長度、截取中文字符串的函數(shù)代碼
- php截取utf-8中文字符串亂碼的解決方法
- php字符串截取中文截取2,單字節(jié)截取模式
- php中的一個中文字符串截取函數(shù)
- PHP截取中文字符串的問題
- php自定義中文字符串截取函數(shù)substr_for_gb2312及substr_for_utf8示例
相關(guān)文章
laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢
今天小編就為大家分享一篇laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10Zend Framework入門教程之Zend_Session會話操作詳解
這篇文章主要介紹了Zend Framework入門教程之Zend_Session會話操作,結(jié)合實例形式詳細分析了Zend_Session會話操作的具體使用技巧,需要的朋友可以參考下2016-12-12