php截取utf-8中文字符串乱码的解决方法
function utf8_substr($str,$len)
{
for($i=0;$i<$len;$i++)
{
$temp_str=substr($str,0,1);
if(ord($temp_str) > 127){
$i++;
if($i<$len){
$new_str[]=substr($str,0,3);
$str=substr($str,3);
}
}else {
$new_str[]=substr($str,0,1);
$str=substr($str,1);
}
}
return join($new_str);
}
相关推荐
-
php中支持多种编码的中文字符串截取函数!
支持多种编码的中文字符串截取函数! 复制代码 代码如下: /* * @todo 中文截取,支持gb2312,gbk,utf-8,big5 * * @param string $str 要截取的字串 * @param int $start 截取起始位置 * @param int $length 截取长度 * @param string $charset utf-8|gb2312|gbk|big5 编码 * @param $suffix
-
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
在PHP程序开发中,经常会执行字符串的截取操作,比如输出信息列表时,标题不宜过长,打印文章摘要时,也要执行一系列的字符串截取操作.遇到这些需求时,我们经常会想到使用substr()方法来实现,substr()对全英文字符串的截取是比较适合的. 但字符串只要出现中文字符,就有可能导致PHP substr中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符"锯"成两半,造成断开的字符会把其后的..拉
-
PHP截取中文字符串的问题
以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况.但中英文混合.特殊符号等问题总是存在,现在写一个比较全面的,仅供参考: 程序说明: 1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些 2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数 3. 特别适用于用htmlspecialchars()进行过编码的字符串 4. 能正确处理GB2312中
-
php截取中文字符串不乱码的方法
GBK编码截取示例 复制代码 代码如下: $str = '我是谁'; //gbk编码的字符串echo mb_substr($str, 0, 1, 'gbk'); //输出 我 mb_substr方法比substr多一个参数,用来指定字符串编码. utf-8编码截取示例 [code]$str = '我abc是谁'; //utf-8编码的字符串echo mb_substr($str, 0, 2, 'utf-8'); //输出 我a[/code 中英混合也完全没有问题. 友情提示 使用的时候要注意
-
php中计算中文字符串长度、截取中文字符串的函数代码
在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. 复制代码 代码如下: header('Content-type:text/html;cha
-
php截取中文字符串函数实例
本文实例讲述了php截取中文字符串函数.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php //中文字符串截取 function substr_zh($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][\x8
-
php中截取中文字符串的代码小结
字符串截取是一个非常常见的编程任务,而往往带中文的字符串截取会经常用到.虽然不难,但是自己写函数实现又耗费时间,这里介绍一个比较好用的字符串截取函数,能够胜任基本的需求了. 1. 截取GB2312中文字符串 复制代码 代码如下: < ?php //截取中文字符串 function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i
-
php自定义截取中文字符串-utf8版
先说明:网上目前有很多这个问题的代码,但是很多都是复制粘贴,没有自己实践,而且代码有逻辑问题,下面的代码由我自己编写. 话不多说 /** * 该函数是对于utf8编码 * @author 2582308253@qq.com * @param string $str * @param int $start * @param int $length * @return string * @copyright 2017年2月27日下午1:46:10 */ function gbsubstr2($str
-
php中的一个中文字符串截取函数
PHP代码: -------------------------------------------------------------------------------- <?php /** ***@Author:LAD ***@URL :<a href="http://www.cnpik.com/" target="_blank">http://www.cnpik.com/</a> ***@E_mail:lianxiwoo@s
-
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
一.中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字数 $encoding,网页编码,如utf-8,GB2312,GBK 实例: 复制代码 代码如下: <?php $str='我们:http://www.jb51.net'; echo mb_substr($str,0,4,'utf-8');//截取头5个字,假定此代码所在php
随机推荐
- Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
- 将MSSQL Server 导入/导出到远程服务器教程的图文方法分享
- JS模拟面向对象全解(一、类型及传递)
- iOS开发中常见的解析XML的类库以及简要安装方法
- SpringMVC中日期格式的转换
- jQuery使用empty()方法删除元素及其所有子元素的方法
- THINKPHP在添加数据的时候获取主键id的值方法
- c#实现断点续传功能示例分享
- mysql下怎样运行脚本以运行niuzi.sql为例
- mysql 查看版本的方法图文演示
- python实现爬虫统计学校BBS男女比例(一)
- asp,VBscript语法错误,史上最全最详细最精确第1/3页
- php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
- Windows下实现MySQL自动备份的批处理(复制目录或mysqldump备份)
- java设计模式之装饰模式详细介绍
- 浅谈JavaScript的Polymer框架中的behaviors对象
- apache 二级域名解析 (window与linux)
- Android 实现当下最流行的吸顶效果
- C++中结构体的类型定义和初始化以及变量引用
- Android开发实现webview中img标签加载本地图片的方法