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 相关文章推荐
php设计模式 Singleton(单例模式)
Jun 26 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
浅析is_writable的php实现
Jun 18 PHP
计算php页面运行时间的函数介绍
Jul 01 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php在apache环境下实现gzip配置方法
Apr 02 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
php简单截取字符串代码示例
Oct 19 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
Referer原理与图片防盗链实现方法详解
Jul 03 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
PHP中文件上传的一个问题
2010/09/04 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
python实现图片处理和特征提取详解
2017/11/13 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
python实现KNN近邻算法
2020/12/30 Python
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
网络教育毕业生自我鉴定
2013/10/10 职场文书
表彰大会策划方案
2014/05/13 职场文书
应届大专生求职信
2014/06/26 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
团干部培训班心得体会
2016/01/06 职场文书