针对不同编码的自定义截取函数分析
2009-09-14 21:44
393 查看
针对不同编码的自定义截取函数分析
<?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)不会显示出什么,但是他是一个字符。当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。
?>
本文转载自:/article/1270501.html
<?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)不会显示出什么,但是他是一个字符。当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。
?>
本文转载自:/article/1270501.html
相关文章推荐
- Android针对不同的手机屏幕大小设计图片资源与编码
- 自定义分析函数
- printf函数使用—针对不同数据类型的输出结果详解
- Oracle分析函数、多维函数和Model函数简要说明,主要针对BI报表统计
- iconv_substr截取字符而不是字节数,不用额外写自定义函数哦
- Android针对不同的手机屏幕大小设计图片资源与编码
- Android针对不同的手机屏幕大小设计图片资源与编码
- MATLAB中nargin函数的用法nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用它来设定一些默认值。如下例所示: 函数文件 examp.m
- Android针对不同的手机屏幕大小设计图片资源与编码
- redis的源码分析之不同编码类型的数据结构
- zepto 源码分析2 - 编码技巧 & 函数实现
- 针对不同浏览器,进行附件名的编码
- 【iOS开发-64】微博案例练习:用代码自定义cell,主要内容是针对不同高度的cell
- Oracle分析函数、多维函数和Model函数简要说明,主要针对BI报表统计 推荐
- 用MATLAB做聚类分析时非常有用的自定义距离函数和标准化函数
- 支持中文的PHP字符串截取函数 (附各语言的字符集编码范围)
- Android 自定义View(二)函数分析
- Hibernate 针对 Oracle 特有函数及自定义函数的实现办
- MATLAB利用communication toolbox实现AGWN信道不同编码译码误码率分析
- php自定义函数实现汉字转换utf8编码的方法