PHP擷取中英文本串

2021-07-11 13:46:24 字數 2321 閱讀 4587

<?php 

//php擷取gb2312中文字串

/** * php擷取gb2312中文字串

* @param $str 被擷取的字串

* @param $start 起始長度

* @param $len 擷取長度

* @param $suffix 字尾字串

*/function gbk_str($str, $start, $len,$suffix="")

$i++;

}else}}

return $tmpstr.$suffix;

}//測試案例

$str = "測試字串'abcdefg";

echo gbk_str($str,2,9,"...");

顯示效果:

字串'abcde...

原理:

utf-8編碼的字元可能由1~3個位元組組成,

具體數目可以由第乙個位元組判斷出來。

第乙個位元組大於239小於248的,它與它之後的3個位元組組成乙個utf-8字元

第乙個位元組大於223小於240的,它與它之後的2個位元組一起組成乙個utf-8字元

第乙個位元組大於191小於224的,它與它之後的1個位元組組成乙個utf-8字元

否則第乙個位元組本身就是乙個英文本元(包括數字和一小部分標點符號)。

注意:小寫字母和半形標點等與半個高位字元寬

/**

* php擷取utf-8中文字串

* @param $str 被擷取的字串

* @param $start 起始長度

* @param $len 擷取長度

* @param $suffix 字尾字串

*/function utf8_str($str,$start,$len,$suffix="")

$n++;

$i++;

}elseif($value >= 192 && $value <= 223)

$n++;

$i+=2;

}elseif($value >= 224 && $value <= 239)

$n++;

$i+=3;

}elseif($value >= 240 && $value <= 247)

$n++;

$i+=4;

}else

$n += 0.5;

$i++;}}

if($n<$len)else

}//測試案例

$str = "測試字串'abcdefg";

echo utf8_str($str,2,9,"...");

顯示效果:

字串'abcdefg...

1.要確保你的windows/system32下有php_mbstring.dll這個檔案,沒有就從php安裝目錄extensions裡拷入windows/system32裡面。

2.windows下的php目錄中找到配置檔案php.ini並開啟,搜尋mbstring.dll,找到;extension=php_mbstring.dll把前面的;號去掉

mb_substr — 獲取字串的部分

說明:string mb_substr ( string $str , int $start [, int $length = null [, string $encoding = mb_internal_encoding() ]] )

根據字元數執行乙個多位元組安全的 substr() 操作。 位置是從 str 的開始位置進行計數。 第乙個字元的位置是 0。第二個字元的位置是 1,以此類推。

引數:str

從該 string 中提取子字串。

start

str 中要使用的第乙個字元的位置。

length

str 中要使用的最大字元數。 if omitted or null is passed, extract all characters to the end of the string.

encoding

encoding 引數為字元編碼。如果省略,則使用內部字元編碼。

返回值mb_substr() 函式根據 start 和 length 引數返回 str 中指定的部分。

函式如下:

function mystr($str,$start,$len,$charset,$suffix)

$str1 = "這是乙個悲傷的故事abcdefg";

echo mystr($str1,2,9,"utf-8","...");

中英文本串擷取

substringlength 每行限制文字數量 預設是20個字元 按照英文本元長度來計算,乙個中文字元相當於兩個英文本元 replacecharacter 超出字元代替樣式 預設是 擷取字元 string substring string strinput return resultstr rep...

PHP擷取中英文本串長度

我們經常會遇到需要擷取字串 含中文漢字 長度的情況,比如標題顯示不能超過多少字元,超出的長度用 表示,以下函式可以滿足你的需求。utf 8 gb2312都支援的漢字擷取函式 cut str 字串,擷取長度,開始長度,編碼 編碼預設為 utf 8 開始長度預設為 0 function cutstr s...

php中英文本串擷取函式 包括html

這裡提供一款支援中文漢字與英文混合在一起的擷取功能,包括對html標籤等進來處理,下面我們來看看這款擷取函式吧.中英文本串擷取函式 包括html 例項 如下 function get word string,length,dot charset gbk string str replace arra...