- 论坛徽章:
- 0
|
谁有截取中文字符串的函数
楼上的,那不叫标准。下面这个,唠叨写的,用法和substr一样:
- function c_substr($str, $start = 0) {
- $ch = chr(127);
- $p = array("/[\x81-\xfe]([\x81-\xfe]|[\x40-\xfe])/", "/[\x01-\x77]/");
- $r = array("", "");
- if(func_num_args() >; 2)
- $end = func_get_arg(2);
- else
- $end = strlen($str);
- if($start < 0)
- $start += $end;
-
- if($start >; 0) {
- $s = substr($str,0,$start);
- if($s[strlen($s)-1] >; $ch) {
- $s = preg_replace($p,$r,$s);
- $start += strlen($s);
- }
- }
- $s = substr($str,$start,$end);
- $end = strlen($s);
- if($s[$end-1] >; $ch) {
- $s = preg_replace($p,$r,$s);
- $end += strlen($s);
- }
- return substr($str, $start, $end);
- }
复制代码 |
|