程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php mb_strlen()中英混體字符截取代碼

php mb_strlen()中英混體字符截取代碼

編輯:關於PHP編程

注:如果在用mb_strlen出現fatal error: call to undefined function mb_strlen,這種問題你要可以用php教程info()看一下有沒有裝載mbstring,如果沒有,嘗試將php_mbstring.dll復制到%windows%目錄下。

文件編碼 utf-8

$var = '中文字符abc';
mb_strlen($var, 'utf-8'); // 輸出7 中文英文都占一個字節
mb_strlen($var); // 輸出15 中文占3個字節 英文占一個字節
mb_strlen($var, 'gbk'); // 輸出9 不正常

取全部中文

function utf8substr($str, $from, $len)
{
return preg_replace('#^(?:[x00-x7f]|[xc0-xff][x80-xbf]+){0,'.$from.'}'.
'((?:[x00-x7f]|[xc0-xff][x80-xbf]+){0,'.$len.'}).*#s',
'$1',$str);
}

中文與英混體截取代碼

function gb2312_strlen($string)
{
$str_len = strlen($string);
$str_count = 0;
for($j = 0; $j < $str_len; $j++)
{
   if(ord($string{$j}) < 127)
   {
    $str_count += 1;
    continue;
   }
   else
   {
    if(ord($string{$j+1}) > 127)
    {
     $str_count += 1;
     $j++;
     continue;
    }
    else
    {
     $str_count += 1;
     continue;
    }
   }
}
return $str_count;
}
$str = "開s d"; 
echo gb2312_strlen($str);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved