全球化服务

0755-82326831

获取免费方案

全部

网站建设行业资讯

网站建设常识

网站建设常见问题

SEO优化常识

网站开发常识

域名空间常识

高端网站建设

首页 > 域名空间常识 > php中核算中文字符串长度、截取中文字符串

php中核算中文字符串长度、截取中文字符串

作者: 域名空间专家

时间: 2021-12-13 14:25:36

来源:增长超人

标签: php网站开发,php建站系统,php网站建设,

在做PHP开发的时分,因为我国的言语环境问题,所以咱们常常需求对中文进行处理。在PHP中,咱们都知道有专门的mb_substr和mb_strlen函数,能够对中文进行截取和计算长度,可是,因为这些函数并非PHP的中心函数,所以,它们常常有或许没有敞开。当然,如果是用的自己的服务器,则只要在php.ini中敞开即可。如果是用的虚拟主机,而服务器又没有敞开这方面的函数的话,那就需求咱们自己写出点合适咱国情的函数来了。

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

  header('Content-type:text/html;charset=utf-8'); /** * 能够计算中文字符串长度的函数 * @param $str 要计算长度的字符串 * @param $type 计算长度类型,0(默许)表明一个中文算一个字符,1表明一个中文算两个字符 * */ functionabslength($str) { if(empty($str)){ return0; } if(function_exists('mb_strlen')){ returnmb_strlen($str,'utf-8'); } else{ preg_match_all("/./u",$str,$ar); returncount($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 要进行截取的长度 */ functionutf8_substr($str,$start=0) { if(empty($str)){ returnfalse; } if(function_exists('mb_substr')){ if(func_num_args() >= 3) { $end= func_get_arg(2); returnmb_substr($str,$start,$end,'utf-8'); } else{ mb_internal_encoding("UTF-8"); returnmb_substr($str,$start); }   } else{ $null=""; preg_match_all("/./u",$str,$ar); if(func_num_args() >= 3) { $end= func_get_arg(2); returnjoin($null,array_slice($ar[0],$start,$end)); } else{ returnjoin($null,array_slice($ar[0],$start)); } } } $str2='wo要截取zhongwen'; echo'
'; echoutf8_substr($str2,0,-4);//return wo要截取zhon

支撑gb2312,gbk,utf-8,big5 中文截取办法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 /*   * 中文截取,支撑gb2312,gbk,utf-8,big5   *   * @param string $str 要截取的字串   * @param int $start 截取开始方位   * @param int $length 截取长度   * @param string $charset utf-8|gb2312|gbk|big5 编码   * @param $suffix 是否加尾缀   */   publicfunctioncsubstr($str,$start=0,$length,$charset="utf-8",$suffix=true)   {   if(function_exists("mb_substr"))   {   if(mb_strlen($str,$charset) <=$length)return$str;   $slice= mb_substr($str,$start,$length,$charset);   }   else   {   $re['utf-8'] ="/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";   $re['gb2312'] ="/[x01-x7f]|[xb0-xf7][xa0-xfe]/";   $re['gbk'] ="/[x01-x7f]|[x81-xfe][x40-xfe]/";   $re['big5'] ="/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";   preg_match_all($re[$charset],$str,$match);   if(count($match[0]) <=$length)return$str;   $slice= join("",array_slice($match[0],$start,$length));   }   if($suffix)return$slice."…";   return$slice;   }

2022数字营销白皮书

一起聊聊您的项目?

联系我们

等一下!这里有三份资料送你~

3000+家企业都在用的工具书

  • 《企业官网建设实战指南》
  • 《SEM狙击战术》
  • 《数字营销白皮书》
免费领取

您将免费获得

  • 1

    全面诊断网站

    您将获得专家对您网站的全面诊断服务,我们不同于传统建站公司仅是提供一些通用的、浅显的建议。

  • 2

    找出可能让您错过的增长点

    我们将挖掘出有利于转化率提升的指标,还将详细说明您网站可以改善的确切地方。

  • 3

    流量查询与分析

    我们通过专业手段,提供您所在行业的流量增长趋势与流量来源分析。

  • 4

    定制方案与报价

    对您的需求深入了解后,并结合您所处行业的竞争分析结果,我们将为您量身定制一份增长方案。

获取方案

贵公司的网址是?

如何称呼您?*

您的联系方式是?*

留言

下一步

贵公司预算范围是?

贵公司的团队规模是?

目前主要的营销渠道是?

从哪里了解到我们?

免费预约

贵公司的网址是?

如何称呼您?*

您的联系方式是?*

留言

立即提交

扫描二维码

关注公众号

回复【数字营销】即可获取白皮书

book

免费获取《2023数字营销白皮书》

扫描二维码 回复【数字营销】免费获取

code

扫码获取

我们的服务已触达

全国20多个省份乃至海外

中国

深圳、上海、北京、广州、香港、成都、重庆、杭州、武汉、西安、天津、苏州、南京、郑州、长沙、沈阳、青岛、合肥、佛山、南昌、台湾、昆明、海口、厦门...

海外

美国、加拿大、新加坡、日本、韩国、俄罗斯、法国、英国、德国、意大利、澳大利亚、沙特阿拉伯、新西兰、荷兰...

合作咨询
请通过表单提交合作咨询信息,我们会尽快与您取得联系。

我们的服务已触达

全中国及海外20多个国家

中国

深圳、上海、北京、广州、香港、成都、重庆、杭州、武汉、西安、天津、苏州、南京、郑州、长沙、东莞、沈阳、青岛、合肥、佛山、山东、台湾、苏州、厦门...

海外

美国、加拿大、新加坡、日本、韩国、俄罗斯、法国、英国、德国、意大利、澳大利亚、沙特阿拉伯、新西兰、荷兰、以色列、越南...

合作咨询 0755-82326831
请通过表单提交合作咨询信息,我们会尽快与您取得联系。

获取方案

咨询

售前在线咨询

专属顾问在线解答

电话

售前电话咨询

0755-82326831

顶部