php chr() ord()中文截取乱码问题解决方法


Posted in PHP onSeptember 08, 2008
<?php 
$lenth = 19; 
$str = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?"; 
echo strlen($str)<=$lenth ? $str : (substr($str,0,$lenth).chr(0)."...."); 
?>

<? 
/* 
@ 另一种方法,使用ord()函数: 
@ 适用于 gb2312 编码: 
*/ 
$str = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?"; 
function gb2312_substr($str, $limit) { 
$restr =''; 
for($i=0;$i< $limit-3;$i++) { 
$restr .= ord($str[$i])>127 ? $str[$i].$str[++$i] : $str[$i]; 
} 
return $restr; 
} 
/* 
@ 以下仅适用于 utf-8 编码; 
*/ 
function utf8_substr($str, $limit) { 
$restr = ''; 
for($i=0;$i< $limit-3;$i++) { 
$restr .= ord($str[$i])>127 ? $str[$i].$str[++$i].$str[++$i] : $str[$i]; 
} 
return $restr; 
} 
//解释下上面第一个:chr(0)不是null,null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000虽然chr(0)不会显示出什么,但是他是一个字符。虽然chr(0)不会显示出什么,但是他是一个字符。当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。 
?>
PHP 相关文章推荐
PHP反射类ReflectionClass和ReflectionObject的使用方法
Nov 13 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
php使用google地图应用实例
Dec 31 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
php远程下载类分享
Apr 13 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
wiki-shan写的php在线加密的解密程序
Sep 07 #PHP
php单件模式结合命令链模式使用说明
Sep 07 #PHP
网友原创的PHP模板类代码
Sep 07 #PHP
php 特殊字符处理函数
Sep 05 #PHP
php include,include_once,require,require_once
Sep 05 #PHP
php生成随机数或者字符串的代码
Sep 05 #PHP
PHP通用分页类page.php[仿google分页]
Aug 31 #PHP
You might like
在 PHP 中使用随机数的三个步骤
2006/10/09 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
php去掉文件前几行的方法
2015/07/29 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
python ansible服务及剧本编写
2017/12/29 Python
Python使用configparser库读取配置文件
2020/02/22 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
应聘收银员个人的求职信
2013/11/30 职场文书
公务员综合考察材料
2014/02/01 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
健康教育评估方案
2014/05/25 职场文书
2014年度考核工作总结
2014/12/24 职场文书
信访维稳承诺书
2015/05/04 职场文书
Golang map映射的用法
2022/04/22 Golang