眾所周知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 ...