以下是二款双字节字符串截取函数,针对中文字符串截取,第一款汉字中文截取函数是越级简洁了,后一款复杂但考虑更多一些.
<?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)); } ?>
方法二:
<?php 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; } } return substr($str, $s, $e - $s); } } ?>
http://www.savh.cn/thread-213.htm
转载请注明:Savh.Cn 发表