最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中英混合字符串截取函數(shù)代碼

 更新時間:2011年07月17日 18:42:58   作者:  
今天在遇到了一個中英字符串截取的問題,在gbk里中文里每個字占兩字節(jié),如果全是中文的話,用substr()函數(shù)就可以實現(xiàn)了,但中英都有的話就麻煩了,在以前收藏的代碼里找到了一個不錯的函數(shù),很好的實現(xiàn)了截取的功能
復制代碼 代碼如下:

function get_word($string, $length, $dot = '..',$charset='gbk') {
if(strlen($string) <= $length) {
return $string;
}
$string = str_replace(array(' ','&nbsp;', '&', '"', '<', '>'), array('','','&', '"', '<', '>'), $string);
$strcut = '';
if(strtolower($charset) == 'utf-8') {
$n = $tn = $noc = 0;
while($n < strlen($string)) {
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1; $n++; $noc++;
} elseif(194 <= $t && $t <= 223) {
$tn = 2; $n += 2; $noc += 2;
} elseif(224 <= $t && $t < 239) {
$tn = 3; $n += 3; $noc += 2;
} elseif(240 <= $t && $t <= 247) {
$tn = 4; $n += 4; $noc += 2;
} elseif(248 <= $t && $t <= 251) {
$tn = 5; $n += 5; $noc += 2;
} elseif($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $length) {
break;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
} else {
for($i = 0; $i < $length; $i++) {
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
}
return $strcut.$dot;
}
$str = "歡迎 visit 簡明 nowamagic";
$str_result = get_word($str, 12);
echo $str_result;

測試運行結(jié)果:
歡迎 visit..

相關(guān)文章

  • PHP程序61條面向?qū)ο蠓治鲈O(shè)計的經(jīng)驗小結(jié)

    PHP程序61條面向?qū)ο蠓治鲈O(shè)計的經(jīng)驗小結(jié)

    你不必嚴格遵守這些原則,違背它們也不會被處以宗教刑罰。但你應(yīng)當把這些原則看成警鈴,若違背了其中的一條,那么警鈴就會響起 。 ----- Arthur J.Riel
    2008-11-11
  • 如何在Ubuntu下啟動Apache的Rewrite功能

    如何在Ubuntu下啟動Apache的Rewrite功能

    本篇文章是對在Ubuntu下啟動Apache的Rewrite功能的具體操作步驟進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • 淺談laravel中間件的創(chuàng)建思路

    淺談laravel中間件的創(chuàng)建思路

    網(wǎng)上有很多解析laravel中間件的實現(xiàn)原理,但是不知道有沒有讀者在讀的時候不明白,作者是怎么想到要用array_reduce函數(shù)的?本文從自己的角度出發(fā),模擬了如果我是作者,我是怎么實現(xiàn)這個中間件功能,又是怎么找到并使用對應(yīng)的函數(shù)。本文將介紹Laravel中間件得創(chuàng)建思路。
    2021-05-05
  • php數(shù)組函數(shù)array_walk用法示例

    php數(shù)組函數(shù)array_walk用法示例

    這篇文章主要介紹了php數(shù)組函數(shù)array_walk用法,分析了array_walk對數(shù)組中每個成員調(diào)用用戶函數(shù)的使用技巧,需要的朋友可以參考下
    2016-05-05
  • 針對PHP開發(fā)安全問題的相關(guān)總結(jié)

    針對PHP開發(fā)安全問題的相關(guān)總結(jié)

    今天小編就為大家分享一篇關(guān)于針對PHP開發(fā)安全問題的相關(guān)總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • PHP實現(xiàn)的獲取文件mimes類型工具類示例

    PHP實現(xiàn)的獲取文件mimes類型工具類示例

    這篇文章主要介紹了PHP實現(xiàn)的獲取文件mimes類型工具類,結(jié)合實例形式分析了php針對文件mimes類型的相關(guān)判斷操作技巧,需要的朋友可以參考下
    2018-04-04
  • PHP如何使用XlsWriter實現(xiàn)百萬級數(shù)據(jù)導入導出

    PHP如何使用XlsWriter實現(xiàn)百萬級數(shù)據(jù)導入導出

    這篇文章主要為大家詳細介紹了PHP如何使用XlsWriter實現(xiàn)百萬級數(shù)據(jù)導入導出,文中的示例代碼講解詳細,有需要的小伙伴可以跟隨小編一起學習一下
    2025-02-02
  • kindeditor 加入七牛云上傳的實例講解

    kindeditor 加入七牛云上傳的實例講解

    下面小編就為大家?guī)硪黄猭indeditor 加入七牛云上傳的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • php函數(shù)間的參數(shù)傳遞(值傳遞/引用傳遞)

    php函數(shù)間的參數(shù)傳遞(值傳遞/引用傳遞)

    函數(shù)間的參數(shù)傳遞包括值傳遞和引用傳遞,詳細示例接下來為大家詳細介紹下,感興趣的朋友不要錯過
    2013-09-09
  • PHP中余數(shù)、取余的妙用

    PHP中余數(shù)、取余的妙用

    這篇文章主要介紹了PHP中余數(shù)、取余的妙用,這個是在WEB開發(fā)中一個經(jīng)常使用的小技巧,不管是在表格、ul、li或者是換行等HTML處理中,需要隔幾行換行,隔幾行加入ul或li的結(jié)束標記等時候,特別的有用,需要的朋友可以參考下
    2015-06-06

最新評論

广灵县| 司法| 叶城县| 临汾市| 中牟县| 紫金县| 灵石县| 阜城县| 五峰| 区。| 平昌县| 嘉祥县| 定南县| 萨嘎县| 浮梁县| 阿荣旗| 清远市| 平山县| 桑植县| 剑川县| 广宗县| 长泰县| 潞西市| 汉中市| 榆林市| 视频| 上林县| 应城市| 栾川县| 浦城县| 太和县| 隆回县| 石狮市| 长岛县| 砀山县| 兴国县| 娄烦县| 香格里拉县| 永兴县| 珲春市| 昂仁县|