php中如何擷取中文字串

2021-06-02 11:26:20 字數 1697 閱讀 5696

眾所周知php原生函式substr是不支援擷取中文字串的。下面的**提供了多種擷取php中文字串的方法。

1. 擷取gb2312中文字串

<?php

< ?php

//擷取中文字串

function mysubstr($str, $start, $len) else

$tmpstr .= substr($str, $i, 1);

}return $tmpstr;

}?>

2. 擷取utf8編碼的多位元組字串
<?php

< ?php

//擷取utf8字串

function utf8substr($str, $from, $len)

'. '((?:[\x00-\x7f]|[\xc0-\xff][\x80-\xbf]+)).*#s',

'$1',$str);

}?>

3. utf-8、gb2312都支援的漢字擷取函式
<?php

< ?php

/*utf-8、gb2312都支援的漢字擷取函式

cut_str(字串, 擷取長度, 開始長度, 編碼);

編碼預設為 utf-8

開始長度預設為 0

*/function cut_str($string, $sublen, $start = 0, $code = 'utf-8')

else

else

}if(ord(substr($string, $i, 1))>129) $i++;

}if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";

return $tmpstr;

}}$str = "abcd需要擷取的字串";

echo cut_str($str, 8, 0, 'gb2312');

?>

4. bugfree 的字元擷取函式
< ?php

/** * @package bugfree

* @version $id: functionsmain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss exp $

* ** return part of a string(enhance the function substr())

* * @author chunsheng wang * @param string $string the string to cut.

* @param int $length the length of returned string.

* @return string the cutted string.

*/ else

elseif( ord($stringtmp) >=192 )

else

$stringlast = $stringtmp;

}$stringlast = implode("",$stringlast);

return $stringlast;

}}$string = "17test.info 走在中國自動化測試的前沿";

$length = "18";

?>

php中如何擷取中文字串

眾所周知 php原生函式 substr 是不支援擷取中文字串的。下面的 提供了多種擷取 php中文字串的方法。1.擷取 gb2312 中文字串 擷取中文字串 function mysubstr str,start,len else tmpstr substr str,i,1 return tmpst...

php 如何擷取中文字串

在 應用中時常需要對相應的字串進行擷取。最常用的是使用substr函式對字串進行擷取。然而,substr和strlen函式只在處理英文本串時可以正確使用,在擷取中文字元時,時常出現亂碼。這時,可以使用mb substr和mb strlen函式。後者與前者用法相似,區別在於後者需要在使用過程中新增乙個...

PHP 中文字串擷取

本文提供兩種方法實現中文字串的擷取 1.使用系統提供的 mb substr 或iconv substr 函式 php.ini 配置檔案中的 mbstring 擴充套件要開啟才能使用 函式說明 string mb substr string str,int start int length null ...