日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP字符截取函數,兼容各類gbk,utf-8編碼

PHP字符截取函數,兼容各類gbk,utf-8編碼

來源:程序員人生   發布時間:2014-02-04 16:59:23 閱讀次數:2747次

在PHP中字符截取函數substr只能截取全英文才不會出現亂碼如果里面有中文肯定是無法截取的,下面小編來給大家介紹兩個兼容各類gbk,utf-8編碼字符串截取函數,實例代碼如下:

  1. function CsubStrPro($str$start$length$charset = "utf-8"$suffix = false) 
  2.     if (function_exists ( "mb_substr" )) 
  3.         return mb_substr ( $str$start$length$charset ); 
  4.     $re ['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/"
  5.     $re ['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/"
  6.     $re ['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/"
  7.     $re ['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/"
  8.     preg_match_all ( $re [$charset], $str$match ); 
  9.     $slice = join ( ""array_slice ( $match [0], $start$length ) ); 
  10.     if ($suffix
  11.         return $slice . "…"
  12.     return $slice

實例代碼二:

  1. function subString_UTF8($str$start$lenth
  2.    { 
  3.        $len = strlen($str); 
  4.        $r = array(); 
  5.        $n = 0; 
  6.        $m = 0; 
  7.        for($i = 0; $i < $len$i++) { 
  8.            $x = substr($str$i, 1); 
  9.            $a  = base_convert(ord($x), 10, 2); 
  10.            $a = substr('00000000'.$a, -8); 
  11.            if ($n < $start){ 
  12.                if (substr($a, 0, 1) == 0) { 
  13.                }elseif (substr($a, 0, 3) == 110) { 
  14.                    $i += 1; 
  15.                }elseif (substr($a, 0, 4) == 1110) { 
  16.                    $i += 2; 
  17.                } 
  18.                $n++; 
  19.            }else
  20.                if (substr($a, 0, 1) == 0) { 
  21.                    $r[ ] = substr($str$i, 1); 
  22.                }elseif (substr($a, 0, 3) == 110) { 
  23.                    $r[ ] = substr($str$i, 2); 
  24.                    $i += 1; 
  25.                }elseif (substr($a, 0, 4) == 1110) { 
  26.                    $r[ ] = substr($str$i, 3); 
  27.                    $i += 2; 
  28.                }else
  29.                    $r[ ] = ''
  30.                } 
  31.                if (++$m >= $lenth){ 
  32.                    break
  33.                } 
  34.            } 
  35.        } 
  36.        return $r
  37.    } // End subString_UTF8; 
  38. // End String 

由于此函數返回的是一個數組,因此要配合join函數來顯示字符串:join('',subString_UTF8($str, $start, $lenth));,在頁面顯示的時候還可以在此語句后面連一個"..."

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产玖玖 | 成人在线免费视频观看 | 永久av免费 | 欧美日韩免费中文字幕 | 一区二区免费看 | 国产成人精品免费视频 | 成人深夜视频 | 精品一区久久 | 福利在线影院 | 免费爱爱视频 | 久久99精品久久久久久久青青日本 | 日本久久久久久 | 日本一二三区在线 | 精品自拍视频 | 亚洲精品福利电影 | 日韩精品欧美 | 欧美国产在线视频 | 精品国产污污免费网站精东 | 电影天堂网 | 欧美天堂 | 91久久国产综合久久91猫猫 | 国产一区二区www | 91小视频 | 国产三级在线播放 | 午夜激情久久久 | 午夜精品在线 | 久久精品日韩 | 狠狠淫 | 日韩视频久久 | 国产高清精品一区二区三区 | 精品国产一二三区 | 久久久久久亚洲 | 欧美日韩一区精品 | 五月婷婷六月激情 | 精品伊人 | 精品在线一区 | 国产精品久久久一区二区三区 | 日韩一区欧美一区 | 黄色激情视频网站 | 成人作爱视频 | www.国产在线|