最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php字符串截取,支持中文和其他编码
时间:2022-06-24 18:12:28 编辑:袖梨 来源:一聚教程网
| 代码如下 | 复制代码 |
|
/** |
|
如果我们直接使用了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<$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); } ?> |
|
相关文章
- oppok11玩游戏怎么样介绍 03-22
- 字母站是什么平台 03-22
- 如何删除emmo日记中的心情日记 03-22
- 万王之王3D铁卫技能加点推荐(铁卫技能加点详解及优化方案,助你成为无敌的王者!) 03-22
- 探秘第五人格佣兵天赋加点技巧(打造最强佣兵,助你成为游戏巅峰) 03-22
- 2026有用的老年人脑力训练游戏有什么 有趣的脑力训练游戏合集推荐 03-22