字符串截取不乱码

<?php


   header("Content-type: text/html; charset=gbk"); 
function cutstr($str, $start, $length, $charset)
{
$charsets["utf-8"] = $charsets["utf8"] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$charsets["gb2312"] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$charsets["gbk"] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$charsets["big5"] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($charsets[$charset], $str, $matches); #按照指定编码将字符串切分成一个数组
$substr = implode("", array_slice($matches[0], $start, $length)); #获取数组的子数组,并将子数组的元素连接起来
return $substr;
}


$str = '本期节目导视:又是一期涨知识的节目,在小编看来,理发剪头是换心情变美美哒的事情,但是这个职业在历史发展过程中有着好几个"兼职",行刑人员,外科医生(?)与之相关 历史上关于理发师的趣事涉及到了这位,想知道这些都是怎么回事吗?今晚六点 山西卫视 老梁故事汇,老梁为你盘点古往今来理发师的职业道路~!';
$start = 0;
$length = 10;
$charset = 'utf-8';
echo cutstr($str, $start, $length, $charset).'……';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值