PHP 截取 中文
PHP代码:
function c_substr ( $string, $from, $length = null ){
preg_match_all ( '/[x80-xff]?./', $string, $match );
if ( is_null ( $length )){
$result = implode ( '', array_slice ( $match [ 0 ], $from ));
} else {
$result = implode ( '', array_slice ( $match [ 0 ], $from, $length ));
}
return $result;
$str = "zhon华人min共和guo";
$from = 3;
$length = 7;
echo (c_substr ( $str, $from, $length ));
// 输出: n华人min共
//还有utf-8的
Regarding windix's function to handle UTF-8 strings:
one can use the "u" modifier on the regular expression so that the pattern string is treated as UTF-8
(available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32).
This way the function works for other encodings too (like Greek for example).
The modified function would read like this:
function utf8_substr ( $str, $start ) {
$null = "";
preg_match_all ( "/./u", $str, $ar );
if ( func_num_args () >= 3 ) {
$end = func_get_arg ( 2 );
return join ( $null, array_slice ( $ar [ 0 ], $start, $end ));
} else {
return join ( $null, array_slice ( $ar [ 0 ], $start ));
}
上一篇: Memcached 和 Redis 总结
下一篇: php实现base64格式的图片打包下载