最新下载
热门教程
- 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); } ?> |
|
相关文章
- 企查查企业查询-企查查企业信息查询 01-30
- 小说君有疾否免费阅读入口地址-原著小说君有疾否各人物结局揭晓 01-30
- 喵趣漫画官方网站入口:高清无删减漫画资源首发观看地址 01-30
- 163邮箱官网登录入口网页版-163邮箱官方快捷登录入口 01-30
- 哔咔漫画官网入口-哔咔官网镜像流畅不卡 01-30
- jk漫画最新版本下载入口-jk漫画安卓安装包一键下载直达 01-30