博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 字符串截取
阅读量:6540 次
发布时间:2019-06-24

本文共 812 字,大约阅读时间需要 2 分钟。

  hot3.png

/**

  • 字符串截取
  • @author gesion
  • @param string $str 原始字符串
  • @param int $len 截取长度(中文/全角符号默认为 2 个单位,英文/数字为 1。
  • 例如:长度 12 表示 6 个中文或全角字符或 12 个英文或数字)
  • @param bool $dot 是否加点(若字符串超过 $len 长度,则后面加 "...")
  • @return string */ class Onens { public static function g_substr($str, $len = 12, $dot = true) { $i = 0; $l = 0; $c = 0; $a = array(); while ($l < $len) { $t = substr($str, $i, 1); if (ord($t) >= 224) { $c = 3; $t = substr($str, $i, $c); $l += 2; } elseif (ord($t) >= 192) { $c = 2; $t = substr($str, $i, $c); $l += 2; } else { $c = 1; $l++; } // $t = substr($str, $i, $c); $i += $c; if ($l > $len) break; $a[] = $t; } $re = implode('', $a); if (substr($str, $i, 1) !== false) { array_pop($a); ($c == 1) and array_pop($a); $re = implode('', $a); $dot and $re .= '...'; } return $re; } }

转载于:https://my.oschina.net/neo600/blog/88899

你可能感兴趣的文章
我的友情链接
查看>>
Java 泛型: 什么是PECS(Producer Extends, Consumer Super)
查看>>
软件包管理-打包解包压缩解压
查看>>
maven构建scala项目
查看>>
linux 高级编程看的书
查看>>
Memcached分布式缓存-windows上初步使用-网摘
查看>>
IIS无法启动的问题
查看>>
如何通过结构中的某个变量获取结构本身的指针?(container_of详解)
查看>>
Android 关于mnt/sdcard和sdcard的区别
查看>>
特征变换(7)总结
查看>>
网络工程师之路怎么走?
查看>>
go语言unix域套接字发送udp报文
查看>>
2.并发和并行
查看>>
OpenGL学习(二)用户与交互
查看>>
神奇的代码-常见错误代码注意点
查看>>
[直播一揽子]编码构思和套路
查看>>
[直播一揽子]x264参数的解释
查看>>
static的意义和功能
查看>>
iOS学习之Objective-C 2.0 运行时系统编程
查看>>
Nginx负载均衡Tomcat、Resin实现动静分离
查看>>