博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(实用篇)php中计算中文字符串长度、截取中文字符串的函数代码
阅读量:6637 次
发布时间:2019-06-25

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

在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启。当然,如果是用的自己的服务器,则只要在php.ini中开启即可。如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱自己的函数来了。 

以下几个函数用起来颇为顺手的。不过要知道,得在utf-8环境下使用。

header('Content-type:text/html;charset=utf-8'); /** * 可以统计中文字符串长度的函数 * @param $str 要计算长度的字符串 * @param $type 计算长度类型,0(默认)表示一个中文算一个字符,1表示一个中文算两个字符 * */ function abslength($str) { if(empty($str)){ return 0; } if(function_exists('mb_strlen')){ return mb_strlen($str,'utf-8'); } else { preg_match_all("/./u", $str, $ar); return count($ar[0]); } } $str = '我们都是中国人啊,ye!'; $len = abslength($str); var_dump($len); //return 12 $len = abslength($str,'1'); echo '
'.$len; //return 22 /* utf-8编码下截取中文字符串,参数可以参照substr函数 @param $str 要进行截取的字符串 @param $start 要进行截取的开始位置,负数为反向截取 @param $end 要进行截取的长度 */ function utf8_substr($str,$start=0) { if(empty($str)){ return false; } if (function_exists('mb_substr')){ if(func_num_args() >= 3) { $end = func_get_arg(2); return mb_substr($str,$start,$end,'utf-8'); } else { mb_internal_encoding("UTF-8"); return mb_substr($str,$start); } } else { $null = ""; preg_match_all("/./u", $str, $ar); if(func_num_args() >= 3) { $end = func_get_arg(2); return join($null, array_slice($ar[0],$start,$end)); } else { return join($null, array_slice($ar[0],$start)); } } } $str2 = 'wo要截取zhongwen'; echo '
'; echo utf8_substr($str2,0,-4); //return wo要截取zhon

支持gb2312,gbk,utf-8,big5 中文截取方法 

 

转载于:https://www.cnblogs.com/zhangmiaomiao/p/6013403.html

你可能感兴趣的文章
那些年我们写过的T-SQL(中篇)
查看>>
并发编程1.基本概念
查看>>
一点记忆—— Java框架知识的学习有感
查看>>
微信调起jssdk
查看>>
mybatis批量添加、批量删除
查看>>
链接地址
查看>>
SQL Server 中的临时表解析
查看>>
ECMAScript 5 —— RegExp 类型(中)
查看>>
自定义样式
查看>>
POJ 3186 Treats for the Cows(区间DP)
查看>>
RBAC 基于角色的权限控制
查看>>
C#数组,List,Dictionary,IQueryable,IEnumerable的相互转换
查看>>
理解MVC MVVM MVP设计模式
查看>>
二、Java面向对象(2)_软件开发方式
查看>>
$.ajax与$.post、$.get的一点区别
查看>>
Android--Alarm机制
查看>>
linux删除ORACLE【weber出品必属精品】
查看>>
数据接口-免费版(股票数据API)(转载)
查看>>
敏捷开发方法读后感
查看>>
POJ - 1789 Truck History (最小生成树)
查看>>