php截取中文的函数
我知道有个叫mb_substr()但是会有乱码。 求解决啊!希望高手帮我解决mb_substr截取中文乱码问题。 <?php
/**
* 字符串截取,支持中文和其他编码
*
* @param string $str 需要转换的字符串
* @param string $start 开始位置
* @param string $length 截取长度
* @param string $charset 编码格式
* @param string $suffix 截断字符串后缀
* @return string
*/
function substr_ext($str, $start=0, $length, $charset="utf-8", $suffix="")
{
if(function_exists("mb_substr")){
return mb_substr($str, $start, $length, $charset).$suffix;
}
elseif(function_exists('iconv_substr')){
return iconv_substr($str,$start,$length,$charset).$suffix;
}
$re['utf-8']= "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match, $start, $length));
return $slice.$suffix;
}mb_substr截取乱码,那是因为你没有对应好的php文件编码与函数编码参数.
satrun7 发表于 2012-10-30 12:42 static/image/common/back.gif
mb_substr截取乱码,那是因为你没有对应好的php文件编码与函数编码参数.
哦原来如此啊,知道啦,先谢谢啦 不是mb函数不好用, 是因为你不知道自己的文件是什么编码而已. 请您赐教一下啦!:mrgreen: 回复 5# linux_c_py_php
查询数据库中uname有重复的:select uname,count(uid)from user group by uname having count
(uid)>1
按照 两个字段降序:select * from bbs_topic order by top desc,ctime desc limit 6
替换指定字段的指定字符串:
update space_info set baseinfo=replace(baseinfo ,'baidu.com','123456.abc') where baseinfo
like '%baidu.com%';
查看表结构:
show create table tablename;
查看主机
show databases;
show tables;
mysql -h 127.0.0.1 -uroot -pbaidu;(注意中间-u,-p无空格)
你必须知道你要操作的字符串的编码, 否则mb是没法使用的, 但mb提供了一个猜编码的函数, 你可以体验一下. string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )
第四个参数就是你当前字符串的编码。
页:
[1]