php mb_substr()函数截取中文字符串应用示例

substr()函数用来截取字符串,但是对于中文字符会出现问题,而mb_substr()和mb_strcut这两个函数可以,用法与substr()相似,只是在函数最后要加入多一个参数,以设定字符串的编码,使用这两个函数需要在php.ini中把php_mbstring.dll打开。

<?php
header("content-type:text/html; charset=utf-8");
$string = "你好我好大家好";
echo strlen($string).'</br>';
echo mb_substr($string,0,4,'utf-8').'...</br>';
echo mb_strcut($string,0,4,'utf-8').'...';
?>

输出的结果:

21
你好我好...
你...

从上面的例子可以看出,mb_substr是按字来分割字符,而mb_strcut是按字节来分割字符,但是都不会产生半个字符的现象。

(0)

相关推荐

  • PHP中使用substr()截取字符串出现中文乱码问题该怎么办

    在PHP程序开发中,经常会执行字符串的截取操作,比如输出信息列表时,标题不宜过长,打印文章摘要时,也要执行一系列的字符串截取操作.遇到这些需求时,我们经常会想到使用substr()方法来实现,substr()对全英文字符串的截取是比较适合的. 但字符串只要出现中文字符,就有可能导致PHP substr中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符"锯"成两半,造成断开的字符会把其后的..拉

  • php截取指定2个字符之间字符串的方法

    本文实例讲述了php截取指定2个字符之间字符串的方法.分享给大家供大家参考.具体如下: 在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了,这里给大家介绍一个简单例子. 使用方法: $keyword='查找(计组实验)' $need=getNeedBetween($keyword, '(' , ')' ); 运行该程序之后: $need='计组实验'; 下面就来完成上面用到的字符串截取函数getNeedBetween.该函数可实现简单的从字符串

  • php字符串截取函数用法分析

    本文实例分析了php字符串截取函数用法.分享给大家供大家参考.具体分析如下: php自带的截取字符串的函数只能处理英文,数字的不能截取中文混排的,后面一个示例比较好用,第一个主要是给初学者学学用的,具体代码如下: 复制代码 代码如下: <?php   //构造字符串   $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";   echo "原字符串:<b>".$str."</b><br>&quo

  • PHP实现截取中文字符串不出现?号的解决方法

    本文实例讲述了PHP实现截取中文字符串不出现?号的解决方法.分享给大家供大家参考,具体如下: 当PHP截取中英文混合字符串时,最后一个汉字经常被拆成两半,例:截取字符串的前18个字 <?php $text = "1欢迎访问sina新浪播客"; $value = substr($text, 0, 18); echo $value."<BR>"; ?> 输出为结果为: 1欢迎访问新浪?BR> 于是写了以下这段代码,判断如果中英文混合字符串中

  • PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】

    本文实例分析了PHP常见字符串处理函数用法.分享给大家供大家参考,具体如下: <?php $s = "hello world"; //整理 echo 'trim(); ltrim(); rtrim()'; echo '<br />'; echo '长度为: '.strlen($s); echo '<br />'; //大小写 echo '首字母大写: '.Ucfirst($s); echo '<br />'; echo '每个单词首字母大写:

  • Thinkphp模板中截取字符串函数简介

    在php中截取字符串的函数有很多,而在thinkphp中也可以直接使用php的函数,本文给大家简单的介绍thinkPHP模板中截取字符串的具体用法,希望能对各位有所帮助. 对于英文字符可使用如下形式: 复制代码 代码如下: {$vo.title|substr=0,5} 如果是中文字符thinkphp提供了msubstr,用法如下: 复制代码 代码如下: function msubstr($str, $start=0, $length, $charset="utf-8″, $suffix=true

  • thinkPHP内置字符串截取函数用法详解

    本文实例讲述了thinkPHP内置字符串截取函数用法.分享给大家供大家参考,具体如下: thinkphp内置了一个可以媲美smarty的模板引擎,给我们带来了很大的方便.调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用. 比如今天我们说的截取字符串函数,在thinkphp模板引擎里可以这样写:{$vo.title|msubstr=0,5,'utf-8′,false} 至于{$vo.title}这个大家肯定不陌生了.就说说后边的函数msubstr吧.

  • php中文字符串截取方法实例总结

    本文实例总结了php中文字符串截取方法,非常实用的技巧.分享给大家供大家参考.具体方法分析如下: 用PHP函数substr截取中文字符可能会出现乱码,主要是substr可能硬生生的将一个中文字符"锯"成两半. 解决办法如下: 1.使用mbstring扩展库的mb_substr截取就不会出现乱码了. 2.自己书写截取函数,但效率不如用mbstring扩展库来得高. 3.如果仅是为了输出截取的串,可用如下方式实现:substr($str, 0, 30).chr(0). substr()函数

  • php常用字符串String函数实例总结【转换,替换,计算,截取,加密】

    本文实例总结了php常用字符串String函数.分享给大家供大家参考,具体如下: nl2br 功能:化换行符为<br> <?php $str = "cat isn't \n dog"; $result = nl2br($str); echo $result; /**结果 cat isn't dog */ rtrim 功能:清除右边的空白 <?php $str = "Hello world "; echo strlen($str)."

  • PHP中字符串长度的截取用法示例

    本文实例讲述了PHP中字符串长度的截取用法.分享给大家供大家参考,具体如下: php中提供了很多使用函数,其中字符串的截取函数也不例外,而且功能也非常强大. <?php //文件编码格式为UTF-8 $str='在公园船上,有一个漂亮的女孩,如果在湖中央发生点什么--'; echo mb_substr($str,0,7,'UTF-8');//这里设置显示字符串的编码格式 //输出'在公园船上,有' echo mb_substr($str,3,7,'UTF-8');//这里设置显示字符串的编码格式

  • ThinkPHP的截取字符串函数无法显示省略号的解决方法

    对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下: 打开Common/extend.php页面,修改msubstr函数如下: function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_exists("mb_substr")) { if($suffix) { if($str==mb_substr($str, $start, $le

随机推荐