Heim >Backend-Entwicklung >PHP-Tutorial >php怎么截取中文字符串_PHP教程
在php中截取字符串最简单的办法就是利用substr()函数来实现,但是substr函数只能截取英文,如果是中文不会是乱码哦,那么有朋友说可使用mb_substr()来截取,这个方法又不能截取中文英混合的字符。
此函数用于截取gb2312编码的中文字符串:
代码如下 | 复制代码 |
// 说明:截取中文字符串 |
Utf-8、gb2312都支持的汉字截取函数
截取utf-8字符串函数
为了支持多语言,数据库里的字符串可能保存为UTF-8编码,在网站开发中可能需要用php截取字符串的一部分。为了避免出现乱码现象,编写如下的UTF-8字符串截取函数
关于utf-8的原理请看 UTF-8 FAQ
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); |