php中文字符串截取函数
下面这二款函数是二款双字节字符串截取函数,那就是针对中文字符串截取了,好了第一款汉字中文截取函数是越级简洁了,后一款复杂但考虑更多一些.
- <?php
- //php 中文字符串截取函数
- /*
- */
- function substr($str = '', $offset = 0, $len = 0){
- $len || ($len = strlen($str));
- preg_match_all('/./us', $str, $result);
- return implode('', array_slice($result[0], $offset, $len));
- }
- //方法二,代码如下
- if (!function_exists('mb_substr')) {
- function mb_substr($str, $start, $len = '', $encoding="utf-8"){
- $limit = strlen($str);
- for ($s = 0; $start > 0;--$start) {// found the real start
- if ($s >= $limit)
- break;
- if ($str[$s] <= "")
- ++$s;
- else {
- ++$s; // skip length
- while ($str[$s] >= "€" && $str[$s] <= "�")
- ++$s;
- }
- }
- if ($len == '')
- return substr($str, $s);
- else
- for ($e = $s; $len > 0; --$len) {//found the real end
- if ($e >= $limit)
- break;
- if ($str[$e] <= "")
- ++$e;
- else {
- ++$e;//skip length
- while ($str[$e] >= "€" && $str[$e] <= "�" && $e < $limit)
- ++$e;//开源代码phpfensi.com
- }
- }
- return substr($str, $s, $e - $s);
- }
- }
- ?>