PHP不同字符集字符串长度的计算
2016-02-18 14:02
651 查看
主要介绍两种字符集下(GBK,UTF-8)下,字符串长度的计算。
GBK字符串长度
UTF8字符串长度
GBK字符串长度
function strlen_gbk($str) { $len = strlen($str); $i = 0; while ($i < $len) { if (preg_match("/^[" . chr(0xa1) . "-" . chr(0xff) . "]+$/", $str[$i])) { $i += 2; } else { $i += 1; } } return $i; }
UTF8字符串长度
<?php /** * 计算 UTF-8 字符串长度(忽略字节的方案) * * @param string $str * @return int */ function strlen_utf8($str) { $i = 0; $count = 0; $len = strlen($str); while ($i < $len) { $chr = ord($str[$i]); $count++; $i++; if ($i >= $len) { break; } if ($chr & 0x80) { $chr <<= 1; while ($chr & 0x80) { $i++; $chr <<= 1; } } } return $count; } $str = "http://blog.csdn.net/qq_16619037"; echo strlen_utf8($str); ?>
相关文章推荐
- phpExcel常用方法详解【附有php导出excel加超级链接】
- PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)
- xampp php环境搭建注意事项
- csproj OutputType
- php 中ASCII编码的使用
- PHP扩展函数返回字符串一定需要使用spprintf吗?
- RHEL7学习之NTP配置
- PHP程序中 解析XML,遇到的问题
- PHP Forms
- php ImageMagick imagick 图片处理
- php强大的时间转换函数strtotime
- php实现中文转数字
- 工作中用到的PHP函数
- PHP快递查询接口
- intptr_t 类型
- thinkphp分页样式
- ThinkPHP项目笔记之RBAC(权限相关视频讲解篇
- Php数据类型简介
- PHP——分页显示数据库内容
- php-mysql-excel