跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

发一个刚编的暴力版/温柔版中文截取函数_PHP教程

推荐使用暴力版的, 安全可靠; 温柔版的从程序编写的角度看比较高效. 呵呵基本原理是修正 off, len 可能的错位, 温柔版是从 off 往前倒寻, 寻到第一个/*** @brief 简洁高效的字符串截取函数 (支持 CJK字符)** 只是简单判定了高位部分的ASCII值, 能应付绝大多数正规的中英文混合字符串* 不支持 4字节或3字节的 utf 编码** 要点: 修正双字节中错位的 off 值 / len 值 (注重参数 $len 缺省值为 -1的用意)* 用法和 substr() 一样, 针对 GBK 码的低位(0x40开始)可能有问题*/ function my_substr($str, $off, $len = -1){$mlen = strlen($str);/* 第0步: 参数安全检查与修正 */ if ($off$off = $mlen;if ($off > $mlen)$off = 0;/* 第1步: $off 修正, 倒寻 */ if ($off > 0){$fix = $off;$mb = false;do{$ch = ord($str{$fix--});if ($ch break;$mb = true;}while ($fix);if ($mb){$fix = ($off - $fix);if ($fix & 1){$off--;$len ;}}}/* 第2步: $len 修正, 同上 */ if ($len = $mlen){$len = $mlen - $off;}else{http://www.bkjia.com/PHPjc/445551.html www.bkjia.com true http://www.bkjia.com/PHPjc/445551.html TechArticle推荐使用暴力版的, 安全可靠; 温柔版的从程序编写的角度看比较高效. 呵呵 基本原理是修正 off, len 可能的错位, 温柔版是从 off 往前倒寻...

相关文章