PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]


Posted in PHP onDecember 16, 2011

substr --- 取得部份字符串
语法 : string substr (string string, int start [, int length])
说明 :
substr( )传回 string的一部份字符串,由参数 start和 length指定。
如果 start是正数,传回的字符串将会从 string的第 start个字元开始。
Example :

<?php 
$rest = substr ("abcdef", 1); // returns "bcdef" 
$rest = substr ("abcdef", 1, 3); // returns "bcd" 
?>

如果 start是负数,传回的字符串将会从 string结尾的第 start个字开始。
Example :
<?php 
$rest = substr ("abcdef", -1); // returns "f" 
$rest = substr ("abcdef", -2); // returns "ef" 
$rest = substr ("abcdef", -3, 1); // returns "d" 
?>

如果有给予参数 length而且是正数时,传回的字符串将会从 start传回 length个字元。
如果有给予参数 length而且是负数时,传回的字符串将会结束于 string结尾的第 length个字元。
Example :
<?php 
$rest = substr ("abcdef", 1, -1); // returns "bcde" 
?>

dongyue,2005-01-07 11:10:41
substr --- 取得部份字符串
语法 : string substr (string string, int start [, int length])
说明 :
substr( )传回 string的一部份字符串,由参数 start和 length指定。
如果 start是正数,传回的字符串将会从 string的第 start个字元开始。
Example :
<?php 
$rest = substr ("abcdef", 1); // returns "bcdef" 
$rest = substr ("abcdef", 1, 3); // returns "bcd" 
?>

如果 start是负数,传回的字符串将会从 string结尾的第 start个字开始。
Example :
<?php 
$rest = substr ("abcdef", -1); // returns "f" 
$rest = substr ("abcdef", -2); // returns "ef" 
$rest = substr ("abcdef", -3, 1); // returns "d" 
?>

如果有给予参数 length而且是正数时,传回的字符串将会从 start传回 length个字元。
如果有给予参数 length而且是负数时,传回的字符串将会结束于 string结尾的第 length个字元。
Example :
<?php 
$rest = substr ("abcdef", 1, -1); // returns "bcde" 
?>

Utf-8、gb2312都支持的汉字截取函数
//截取中文字符串 
/* 
Utf-8、gb2312都支持的汉字截取函数 
cut_str(字符串, 截取长度, 开始长度, 编码); 
编码默认为 utf-8 
开始长度默认为 0 
*/function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') 
{ 
if($code == 'UTF-8') 
{ 
$pa ="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/"; 
preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen)); 
return join('', array_slice($t_string[0], $start, $sublen)); 
} 
else 
{ 
$start = $start*2; 
$sublen = $sublen*2; 
$strlen = strlen($string); 
$tmpstr = ''; for($i=0; $i<$strlen; $i++) 
{ 
if($i>=$start && $i<($start+$sublen)) 
{ 
if(ord(substr($string, $i, 1))>129) 
{ 
$tmpstr.= substr($string, $i, 2); 
} 
else 
{ 
$tmpstr.= substr($string, $i, 1); 
} 
} 
if(ord(substr($string, $i, 1))>129) $i++; 
} 
if(strlen($tmpstr)<$strlen ) $tmpstr.= ""; 
return $tmpstr; 
} 
} 
$str="三水点靠木一个不错的网站"; 
echo cut_str($str, 8, 5, 'gb2312');
PHP 相关文章推荐
oracle资料库函式库
Oct 09 PHP
使用PHP socke 向指定页面提交数据
Jul 23 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
PHP计数器的实现代码
Jun 08 PHP
ThinkPHP框架实现session跨域问题的解决方法
Jul 01 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
Yii视图CGridView列表用法实例分析
Jul 12 PHP
浅谈PHP的反射API
Feb 26 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 #PHP
通达OA公共代码 php常用检测函数
Dec 14 #PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 #PHP
php中日期加减法运算实现代码
Dec 08 #PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 #PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 #PHP
PHP新手NOTICE错误常见解决方法
Dec 07 #PHP
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
jQuery的强大选择器小结
2009/12/27 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
深入理解Nodejs Global 模块
2017/06/03 NodeJs
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
js实现div色块拖动录制
2020/01/16 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
Python分割指定页数的pdf文件方法
2018/10/26 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
行政部主管岗位职责
2013/12/28 职场文书
擅自离岗检讨书
2014/02/11 职场文书
男性健康日的活动方案
2014/08/18 职场文书
个人合伙协议书范本
2014/10/14 职场文书
赞美教师的句子
2019/09/02 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL