php截取字符串函数
时间:2022-07-24
本文章向大家介绍php截取字符串函数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 public function sub_string($str, $len, $charset="utf-8")
2 {
3 if( !is_numeric($len) or $len <= 0) {//如果截取长度小于等于
4 return ""; //返回空
5 }
6 $sLen = strlen($str); //获取原始字串长度
7 if( $len >= $sLen ) { //如果截取长度大于总字符串长度
8 return $str; //直接返回当前字符串
9 }
10 if ( strtolower($charset) == "utf-8" ) { //如果编码为为utf-8
11 $len_step = 3; //则中文字符长度为3
12 } else { //如果不是
13 $len_step = 2; //如果是gb2312或big5编码,则中文字符长度为2
14 }
15 //执行截取操作
16 $len_i = 0; //初始化计数当前已截取的字符串个数,此值为字符串的个数值
17 $substr_len = 0; //初始化应该要截取的总字节数
18 for( $i=0; $i < $sLen; $i++ ) { //开始循环
19 if ( $len_i >= $len ) break; //总截取$len个字符串后,停止循环
20 if( ord(substr($str,$i,1)) > 0xa0 ) { //如果是中文字符串
21 $i += $len_step - 1; //
22 $substr_len += $len_step; //当前总字节数加上相应编码的中文字符长度
23 } else { //如果字符不是中文
24 $substr_len ++; //加1个字节
25 }
26 $len_i ++; //已经截取字符串个数增加
27 }
28 $result_str = substr($str,0,$substr_len ); //获取结果
29 return $result_str.'...'; //返回结果
30 }
- 物化视图刷新的问题及分析(61天)
- 使用python+机器学习方法进行情感分析(详细步骤)
- 关于primary key和foreign key的问题处理(60天)
- Git 进阶指南
- Python 文本挖掘:使用情感词典进行情感分析(算法及程序设计)
- 可能是地球上最好用的 Mac 词典工具
- 经典Java面试题收集
- alert日志中的一条ora警告信息的分析(59天)
- golang 详解defer
- 猫哥网络编程系列:HTTP PEM 万能调试法
- 分析函数牛刀小试 (59天)
- 猫哥网络编程系列:详解 BAT 面试题
- SpringMVC中@RequestBody引起的400异常处理,返回校验失败具体信息
- 关于primary key和unique index的奇怪问题 (58天)
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- leetcode哈希表之独一无二的出现次数
- Vue 网站首页加载优化
- Swift日常开发随笔
- vue入门003~vue项目引入element并创建一个登录页面
- vue入门002~vue项目的两种创建方式
- IntelliJ IDEA,WebStorm,PhpStorm破解到2089年
- 小程序订阅消息推送(含源码)java实现小程序推送,springboot实现微信消息推送
- 借助云开发10行代码实现短信验证码的发送
- 借助云开发实现小程序订阅消息(模板消息)推送功能
- 1小时实战入门小程序开发,历史上的今天案例讲解
- 小程序实现全屏幕高斯模糊背景图
- 小程序顶部导航栏,可滑动,可动态选中放大
- 小程序不同页面的异步回调,callback和promise的使用讲解
- java入门019~springboot批量导入excel数据到mysql
- Java点餐系统和点餐小程序新加微信消息推送功能