PHP 中文字串擷取

2021-07-25 14:45:35 字數 1418 閱讀 4919

本文提供兩種方法實現中文字串的擷取

1.使用系統提供的 mb_substr() 或iconv_substr()

函式(php.ini 配置檔案中的 mbstring 擴充套件要開啟才能使用):

函式說明:

string

mb_substr( string$str, int$start[, int$length= null

[, string$encoding= mb_internal_encoding()

]] )

引數:

str    從該 string 中提取子字串。

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

length    str 中要使用的最大字元數。

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

例子:

$str = '是sdw來的abcde';

echo mb_substr($str,0,5,'utf-8') . "

"; // 輸出:是sdw來

iconv_substr()  函式的用法同 mb_substr() 。

2.自己編寫乙個字串擷取函式解決:

/**

* 中文字串擷取

* @param string $str 待擷取的字串

* @param int|integer $start 開始位置

* @param int|null $length 擷取長度,預設擷取到字串末尾

*/function utf8substr($str, $start = 0, $length = null)

if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", substr($str, $i, 1)))

++$count;

if ($count == $start)

}return substr($str, $offset, $length?($i - $offset):strlen($str));

}

測試用例:

$str = "a是df瀏覽未dfsdfads";

var_dump(utf8substr($str, 3, 5)); // 輸出:f瀏覽未d

var_dump(utf8substr($str, 3)); // 輸出:f瀏覽未dfsdfads

PHP擷取中文字串方法

程式一 php擷取中文字串方法 由於 首頁以及vtigercrm裡經常在擷取中文字串時出現亂碼 使用substr 今天找到乙個比較好的擷取中文字串方法,在此與大家共享。function msubstr str,start,len else echo newstr 程式二 php擷取utf 8字串,解...

PHP中文字串擷取函式

首先是csdn論壇php斑竹xuzuning 嘮叨 老大的,支援gb2312,gbk,big三種編碼。以下是 len 19 text 怎麼將新聞的很長的標題只顯示前面一些字,後面用.來代替?echo strlen text len text substr text,0,len chr 0 chr 0...

php 擷取中文字串方法

擷取中文字串函式 param str 需要擷取的字串 param start 開始擷取的位置 param length 擷取的長度 return 此函式返回的是乙個陣列,因此要配合join函式來顯示字串 join substring utf8 str,start,lenth public funct...