php計算中英文混合或中文字串的字數
php的strlen和mb_strlen用於統計字元個數。中英文混合的字串中的中文字元則沒有統計進來。所以得自己另想方法統計中英文混合的字串的字數。以下是我的方法:
先用正則表示式把所有中文替換為空格,就可以用strlen()統計總字數了,總字數就是中文字數與英文字數的總和。
這裡的討論都是在utf-8編碼情況下。
統計中文字數並把所有中文替換為空格的正則表示式:
preg_replace(‘/[\x80-\xff]{3}/’, ‘ ‘, $str, -1);
上面的正則表示式基於這樣的假設:所以中文字元的utf-8都佔3個位元組。網上有人說:並不是所有utf-8中文都是3個位元組,在0080 – 07FF碼段為2位元組,在0800 – FFFF碼段為3位元組。那麼是不是用preg_replace(‘/[\x80-\xff]{1,3}/’, ‘ ‘, $str,-1)更合適?
歸結起來,統計字串中英文字數的示例:
$str = 'I am a 中國人!';
$str = preg_replace('/[\x80-\xff]{1,3}/', ' ', $str, -1);
$num = strlen($str);
變數$num的值即為總字數,本例$num的值為11。這種做法,中文標點符號(所有中文特殊符號)也是算在內的。
相關推薦
php計算中英文混合或中文字串的字數
php的strlen和mb_strlen用於統計字元個數。中英文混合的字串中的中文字元則沒有統計進來。所以得自己另想方法統計中英文混合的字串的字數。以下是我的方法:先用正則表示式把所有中文替換為空格,就可以用strlen()統計總字數了,總字數就是中文字數與英文字數的總和
計算中英文混合字串長度,中文算兩個字元
獲取中英文字串長度是一個比較常用的功能,比如限制一個使用者暱稱、文章標題等的長度,一般從技術的角度考慮,不同的編碼中文所佔的位元組數不同,但從使用者的角度考慮他們根本不知道什麼是字符集,通常的習慣是一箇中文按兩個英文算。之前在網上看到的一個演算法是:$strlen = (s
PHP獲取中英文混合字符串的字數
UNC lse 混合 strlen sci 字符串 sub fun HP function ccStrLen($str) #計算中英文混合字符串的長度 { $ccLen=0; $ascLen=strlen($str); $ind=0; $hasCC=ereg("[xA1-x
PHP中文處理 中文字串擷取(mb_substr)和獲取中文字串字數
一、中文擷取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截斷的字串 $start,截斷開始處,起始處為0 $length,要擷取的字數 $encodin
php擷取中英文混合字串
mb_strwidth($str, $encoding) 返回字串的寬度 $str 要計算的字串$encoding 要使用的編碼,如 utf8、gbk mb_strimwidth($str, $start, $width, $tail, $encoding) 按寬度擷取
php擷取中英文混合字串函式以及用法
function csubstr($string, $beginIndex, $length){ if(strlen($string) < $length){ return substr($string, $beginIndex); }
PHP獲取中英文混合字串長度及擷取
1.字串長度 PHP獲取中英文混合字串長度的實現程式碼如下,1中文=1位,2英文=1位,可自行修改 [php] /** * PHP獲取字串中英文混合長度 * @param $str string 字串 * @param $$charset string 編碼
ASP如何計算中英文混合字串長度和擷取字串 .
計算中英文混合字串的長度: function getStringLen(str) on error resume next dim l,c,i,tl=len(str)t=lfor i=1 to lc=asc(mid(str,i,1))if c>=128
iOS計算中英文混合字串長度的方法
-(NSUInteger) unicodeLengthOfString: (NSString *) text {NSUInteger asciiLength = 0;for (NSUInteger i = 0; i < text.length; i++)
strlen和mb_strlen區別(php獲得中英文混合字元長度)
<?php//測試時檔案的編碼方式要是UTF8$str='中文a字1符';echo strlen($str).'<br>';//14echo mb_strlen($str,'utf8').'<br>';//6echo mb_strlen($str
PHP 中英文混合排版中處理字串常用的函式
# 判斷某個位置是中文字元的左還是右半部分,或不是中文 # 返回值 -1 左 0 不是中文字元 1 右 # 用法 /* $a = 'this is 中文'; print is_chinese($a, 1); // 0 print is_chinese($a,8); // -1
PHP中字串超長的中英文混合擷取
在網站的建設中,很多時候都會遇到文章標題超出分割槽限制的情況,這時候需要我們擷取超出的部分,把超出部分做省略處理,這樣使用者就可以點選連結跳轉再檢視詳情了。PHP自帶的函式也可以擷取字串,例如$str|substr=a,b;這樣可以擷取字串$str的從第a位開始的b個字串,
php中計算中文字串長度、擷取中文字串
header('Content-type:text/html;charset=utf-8');/*** 可以統計中文字串長度的函式* @param $str 要計算長度的字串* @param $type 計算長度型別,0(預設)表示一箇中文算一個字元,1表示一箇中文算兩個字元**/function abs
根據中文姓名或者其他中英文混合字串獲取拼音首字母
<?php /** * Modified by fuyong @ 2015-09-13 * 修復二分法查詢方法 * 漢字拼音首字母工具類 * 注: 英文的字串:不變返回(包括數字) eg .abc123 => abc123 * 中文字串:返回拼音首字元 eg.
PHP擷取中英文字串長度
我們經常會遇到需要擷取字串(含中文漢字)長度的情況,比如標題顯示不能超過多少字元,超出的長度用…表示,以下函式可以滿足你的需求。 /* Utf-8、gb2312都支援的漢字擷取函式 cut_str(字串, 擷取長度, 開始長度, 編碼); 編碼預設為 utf-8 開始長度預設為
php多維陣列或字串值字元替換
php多維陣列或字串值字元替換 解決方法: /** * strReplace 多維陣列或字串值字元替換 * @param String $find  
Java-基於百度API的圖片文字識別(支援中文,英文和中英文混合)
PS: 基於Java 1.8 版本控制:maven 使用之前需要獲取對應的專案API_KEY,SECRET_KEY,這些引數在使用API的時候必須用到,
PHP中文字串轉化為英文首拼音首字母大寫
效果: 中國 =>ZG 中文轉化為英文首字母 中國:ZG ;中2國:ZG;z國:ZG 1:省略了數字(不轉化) 用法: $result =Character::getEnByCnByString(‘i是中國人’,3);//這邊的3為
Java-基於百度API的圖片文字識別(支援中文,英文和中英文混合)貨運APP開發找上海捌躍網路科技有限公司
PS: 基於Java 1.8 版本控制:maven 使用之前需要獲取對應的專案API_KEY,SECRET_KEY,這些引數在使用API的時候必須用到,用於生成access_token。 如何獲取這些引數:在百度開發者中心申請一個“通用文字識別”專案,然後就可
php擷取中文字串方法
/** * 擷取中文 * @param stirng $string 擷取內容 * @param int $sublen 擷取長度 * @param int $start 開始位置 * @param string $code 編碼方式 * @return stri