在php中截取字符串最简单的办法就是利用substr()函数来实现,但是substr函数只能截取英文,如果是中文不会是乱码哦,那么有朋友说可使用mb_substr()来截取,这个方法又不能截取中文英混合的字符。
此函数用于截取gb2312编码的中文字符串:
| 代码如下 | 复制代码 |
|
// 说明:截取中文字符串 |
|
Utf-8、gb2312都支持的汉字截取函数
截取utf-8字符串函数
为了支持多语言,数据库里的字符串可能保存为UTF-8编码,在网站开发中可能需要用php截取字符串的一部分。为了避免出现乱码现象,编写如下的UTF-8字符串截取函数
关于utf-8的原理请看 UTF-8 FAQ
立即学习“PHP免费学习笔记(深入)”;
UTF-8编码的字符可能由1~3个字节组成, 具体数目可以由第一个字节判断出来。(理论上可能更长,但这里假设不超过3个字节)
第一个字节大于224的,它与它之后的2个字节一起组成一个UTF-8字符
第一个字节大于192小于224的,它与它之后的1个字节组成一个UTF-8字符
否则第一个字节本身就是一个英文字符(包括数字和一小部分标点符号)。
| 代码如下 | 复制代码 |
|
|
|
注意明:
| 代码如下 | 复制代码 |
|
function utf8Substr($str, $from, $len) |
|
可单独截取uft8字符串哦。
程序说明:
1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些
2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数
3. 特别适用于用htmlspecialchars()进行过编码的字符串
4. 能正确处理GB2312中实体字符模式()
程序代码:
| 代码如下 | 复制代码 |
|
function FSubstr($title,$start,$len="",$magic=true) $length = 0; //判断起始为不正确位置 unset($cnum); if(strlen($title) $alen = 0; $realnum = 0; for($i=$start;$i if($magic) unset($cur); return substr($title,$start,$length); |
|
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号