php字符串截取,支持中文和其他编码_PHP教程
代码如下 | 复制代码 |
/** |
如果我们直接使用了php substr来截取数据如
在英文和汉字混合的情况下会出现如下问题:
如果有这样一个字符串
$str="这是一个字符串";
为了截取该串的前10个字符,使用
if(strlen($str)>10) $str=substr($str,10)."…";
那么,echo $str的输出应该是"这是一个字…"
假设
$str="这是1个字符串";
这个串中包含了一个半角字符,同样执行:
if(strlen($str)>10) $str=substr($str,10);
由于原字符串$str的第10、11个字符构成了汉字“符”;
执行串分割后会将该汉字一分为二,这样被截取的串就会发现乱码现象
使用了上面这代码字符截取代码就可以方便的解决了这种问题了。
今天找到一个比较好的截取中文字符串方法,在此与大家共享。
代码如下 | 复制代码 |
function msubstr($str, $start, $len) { |
程序二:PHP截取UTF-8字符串,解决半字符问题
/******************************************************************
* PHP截取UTF-8字符串,解决半字符问题。
* 英文、数字(半角)为1字节(8位),中文(全角)为3字节
* @return 取出的字符串, 当$len小于等于0时, 会返回整个字符串
* @param $str 源字符串
* $len 左边的子串的长度
****************************************************************/
代码如下 | 复制代码 |
function utf_substr($str,$len) { for($i=0;$i{ $temp_str=substr($str,0,1); if(ord($temp_str) > 127) { $i++; if($i{ $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截取字符串函数分享(截取中文字符串)
-
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
-
PHP 字符串编码截取函数(兼容utf-8和gb2312)
-
PHP 截取字符串函数整理(支持gb2312和utf-8)
-
PHP 截取字符串 分别适合GB2312和UTF8编码情况
-
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
-
utf编码的中文字符串截取处理(避免截取半字/乱码的情况) PHP
-
utf编码的中文字符串截取处理(避免截取半字/乱码的情况) PHP
-
php中支持多种编码的中文字符串截取函数!
-
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数