在做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'支撑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; }您将免费获得
1
全面诊断网站
您将获得专家对您网站的全面诊断服务,我们不同于传统建站公司仅是提供一些通用的、浅显的建议。
2
找出可能让您错过的增长点
我们将挖掘出有利于转化率提升的指标,还将详细说明您网站可以改善的确切地方。
3
流量查询与分析
我们通过专业手段,提供您所在行业的流量增长趋势与流量来源分析。
4
定制方案与报价
对您的需求深入了解后,并结合您所处行业的竞争分析结果,我们将为您量身定制一份增长方案。
扫描二维码
关注公众号
回复【数字营销】即可获取白皮书
免费获取《2023数字营销白皮书》
扫描二维码 回复【数字营销】免费获取
扫码获取
我们的服务已触达
深圳、上海、北京、广州、香港、成都、重庆、杭州、武汉、西安、天津、苏州、南京、郑州、长沙、沈阳、青岛、合肥、佛山、南昌、台湾、昆明、海口、厦门...
美国、加拿大、新加坡、日本、韩国、俄罗斯、法国、英国、德国、意大利、澳大利亚、沙特阿拉伯、新西兰、荷兰...
我们的服务已触达
深圳、上海、北京、广州、香港、成都、重庆、杭州、武汉、西安、天津、苏州、南京、郑州、长沙、东莞、沈阳、青岛、合肥、佛山、山东、台湾、苏州、厦门...
美国、加拿大、新加坡、日本、韩国、俄罗斯、法国、英国、德国、意大利、澳大利亚、沙特阿拉伯、新西兰、荷兰、以色列、越南...