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中动态HTML的输出技术
Oct 09 PHP
Apache2 httpd.conf 中文版
Nov 17 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
php恢复数组的key为数字序列的方法
Apr 28 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
php使用Jpgraph创建3D饼形图效果示例
Feb 15 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 PHP
PHP回调函数简单用法示例
May 08 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 PHP
PHP中类与对象功能、用法实例解读
Mar 27 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
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
php通用防注入程序 推荐
2011/02/26 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PHPThumb图片处理实例
2014/05/03 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
Python实现的快速排序算法详解
2017/08/01 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
Python笔试面试题小结
2019/09/07 Python
python实现画出e指数函数的图像
2019/11/21 Python
Python ORM编程基础示例
2020/02/02 Python
Python的pygame安装教程详解
2020/02/10 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
C#公司笔试题
2014/03/28 面试题
一套比较完整的软件测试人员面试题
2012/05/13 面试题
电钳工人个人求职信
2014/05/10 职场文书
高中社区服务活动报告
2015/02/05 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers