php 不同编码下的字符串长度区分


Posted in PHP onSeptember 26, 2009

UTF-8的中文字符串是三个字节

<?php 
//编码UTF-8 
echo strlen('测试文字a测试文字'); 
echo '-'; 
echo mb_strlen('测试文字a测试文字','utf-8'); 
?> 
输出:25-9

GB2312的中文字符串是二个字节
<?php 
//编码GB2312 
echo strlen('测试文字a测试文字'); 
echo '-'; 
echo mb_strlen('测试文字a测试文字','Gb2312'); 
?>

输出:17-9
在Mysql数据库(5.1以后的版本)中,如果字段类型为varchar(10)则可插入10个字符(不是字节);
所以在判断字符串的长度时需要根据文档编码来区分。
符一个简单的UTF-8下字符串截取(按字符个数截取)
<? 
/* 
* UTF-8字符串截取 
* $str 要截取的字串 
* $start 截取起始位置 
* $length 截取长度 
*/ 
function cutStr($str,$start,$length) { 
$restr = ''; 
$j = 0; 
$end = $length + $start - 1; 
$plen = strlen($str); 
for($i=0;$i<$plen;$i++) { 
$restr .= ord($str[$i])>127 ? $str[$i].$str[++$i].$str[++$i] : $str[$i]; 
$j++; 
if ($j < $start){$restr = '';} 
if ($j >= $end){break;} 
} 
$restr .=''; 
return $restr; 
} 
$str = '中新网9月24日电 二十国集团(G20)领导人第三次金融峰会今日将在美国匹兹堡召开。'; 
echo $str; 
echo '<br>'; 
echo utf8_substr($str,0,25); 
echo '<br>'; 
?>
PHP 相关文章推荐
PHP动态图像的创建
Oct 09 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
使用PHP实现蜘蛛访问日志统计
Jul 05 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
php 应用程序安全防范技术研究
Sep 25 #PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 #PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 #PHP
php 代码优化的42条建议 推荐
Sep 25 #PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 #PHP
PHP 日常开发小技巧
Sep 23 #PHP
php程序之die调试法 快速解决错误
Sep 17 #PHP
You might like
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
php unlink()函数使用教程
2018/07/12 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
python如何判断IP地址合法性
2020/04/05 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
长辈证婚人证婚词
2014/01/09 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
为自己工作观后感
2015/06/11 职场文书
python+opencv实现目标跟踪过程
2022/06/21 Python