mb_substr

PHP截断函数mb_substr()

夙愿已清 提交于 2020-03-27 04:36:47
在php中mb_substr()函数是用来截中文与英文的函数,可以方便快速的解决截取指定字符长度的问题 提示:mb_ substr 在于php中是默认不被支持的我们需要在在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到;extension=php_mbstring.dll把前面的;号去掉才可以使用mb_substr函数哦。 Function: mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处 $length,长度(注意,这个跟mb_strimwidth不同,1就代表一个中文字符) $encoding,编码,我设为 utf-8 例子: $str = '这样一来我的字符串就不会有乱码^_^'; echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); //结果:这样一来我的字 echo " "; echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); //结果:这样 ?> 来源: https://www.cnblogs.com/chinalorin/p/5828629.html

PHP方法之 mb_substr

前提是你 提交于 2020-03-27 04:15:35
主要功能:中文字符串截取,解决substr中文截取问题,用法基本和substr相同,他可以指定编码。 函数原型: string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) 参数解释: str 从该 string 中提取子字符串。 start str 中要使用的第一个字符的位置。 length str 中要使用的最大字符数。 If omitted or NULL is passed, extract all characters to the end of the string. encoding encoding 参数为字符编码。如果省略,则使用内部字符编码。 返回值: mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。 使用实例: $str = '这样一来我的字符串就不会有乱码^_^'; echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); //结果:这样一来我的字 ?> 注意点:必须要有mbstring扩展支持,否则无法使用 个人独立博客: http://blog.wxp123.me/p/60 来源: https

mb_strcut与mb_substr()

[亡魂溺海] 提交于 2020-03-27 04:11:13
mb_strcut (PHP 4 >= 4.0.6, PHP 5, PHP 7) mb_strcut — 获取字符的一部分 说明 string mb_strcut ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) mb_strcut() 和 mb_substr() 类似,都是从字符串中提取子字符串,但是按字节数来执行,而不是字符个数。 如果截断位置位于多字节字符两个字节的中间,将于该字符的第一个字节开始执行。 这也是和 substr() 函数的不同之处,后者简单地将字符串在字节之间截断,这将导致一个畸形的字节序列。 参数 str 要截断的 string 。 start 如果 start 不是负数,返回的字符串会从 str 的第 start 字节 位置开始,从 0 开始计数。举个例子,字符串 ' abcdef ',字节位置 0 的字符是 ' a ',字节位置 2 的字符是 ' c ',以此类推。 如果 start 是负数,返回的字符串是从 str 末尾处第 start 个字节开始的。 length 字节 长度。If omitted or NULL is passed, extract all bytes to the end of the

PHP截断函数mb_substr()详解

孤街浪徒 提交于 2019-12-07 16:22:05
在php中mb_substr()函数是用来截中文与英文的函数 mb_substr()函数在php中默认是不被支持的,我们需要在在windows目录下找到php.ini,搜索mbstring.dll,找到;extension=php_mbstring.dll,把前面的;号去掉才可以使用mb_substr()函数. Function: mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处 $length,长度(1就代表一个中文字符) $encoding,编码,我设为 utf-8 举例: <?php $str="我是一个好人!"; echo mb_substr($str,0,4,'utf-8'); //结果:我是一个 ?> <?php $str="I am a good man"; echo mb_substr($str,0,4,'utf-8'); //结果:I am ?> 类似的函数:mb_strcut()函数 <?php $str="I am a good man"; echo mb_substr($str,0,4,'utf-8'); //结果:I am ?> <?php $str="我是一个好人!"; echo mb_substr($str,0,4,'utf-8'); //结果:我 ?>

mb_substr()----------php

余生长醉 提交于 2019-12-07 02:53:20
PHP substr()函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini中把php_mbstring.dll打开。 <?php echo mb_substr( '我们都是好孩子hehe' ,0,9); ?> 输出:我们都 现在我们加上字符集utf-8 <?php echo mb_substr( '我们都是好孩子hehe' ,0,9, 'utf-8' ); ?> 输出:我们都是好孩子he 第一个是以三个字节为一个中文,这就是utf-8编码的特点,下面加上utf-8字符集说明,所以,是以一个字为单位来截取的 下面是ecshop里面的截取UTF-8编码下字符串的函数 function sub_str($str, $length = 0, $append = true) { $str = trim($str); $strlength = strlen($str); if ($length == 0 || $length >= $strlength) { return

php截取中文字符串长度的mb_substr()、mb_strcut()函数

女生的网名这么多〃 提交于 2019-12-07 02:53:09
substr()函数可以用来分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll打开。 举个例子: <?php echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?> 输出:这样一来我的字 <?php echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7,'utf-8'); ?> 输出:这样 从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象…… 上面一段是摘抄网络上的,结果都是经本人测试得出的。 个人理解: mb_substr()函数对英文或中文字符都表示一个单位。 mb_strcut()函数对中文字符是3个单位,英文是1个单位。 例如: <?php $str = "这样abcd一来"; echo "mb_substr:".mb_substr($str, 0, 5, 'utf-8'

php函数substr、mb_substr、mb_strcut截取中文比较

旧巷老猫 提交于 2019-12-06 19:00:46
一、函数说明 substr、mb_substr、mb_strcut这三个函数都用来截取字符串,所不同的是:substr是最简单的截取,无法适应中文;mb_substr是按字来切分字符串,而mb_strcut是按字节来切分字符串,截取中文都不会产生半个字符的现象。 这三个函数的前三个参数完全一致,即: 第一个参数是操作对象 第二个参数是截取的起始位置 第三个参数是截取的数量 mb_substr和mb_strcut还有第四个参数:第四个参数可以根据不同的字符集进行设置 <?php //对待一个UTF8的中文字符是3个长度 //对待一个gbk的中文字符是2个长度 header( "content-Type:text/html;charset=utf-8" ); //设置内部编码 mb_internal_encoding( 'UTF-8' ); //测试 $cn_str = "钓鱼岛是中国的hehe" ; $en_str = "this is just a test" ; //使用substr echo substr ( $cn_str ,0,3). '<br/>' ; //钓 echo substr ( $en_str ,0,3). '<br/><br/>' ; //thi //使用mbsubstr() echo "mb_substr-3:" .mb_substr( $cn_str ,0

PHP中substr() mb_substr() mb_struct()的区别和用法及Smar...

孤人 提交于 2019-12-06 12:38:49
PHP substr(),mb_substr()及mb_strcut的区别和用法及Smarty模板中的truncate调节器浅谈 PHP substr() 函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函 数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个 参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll 打开。 举个例子: <?php echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?> 输出:这样一来我的字 <?php echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?> 输出:这样一 从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象…… mbstring 函数的说明: php的mbstring扩展模块提供了多字节字符的处理能力,平常最常用的就是用mbstring来切分多字节的中文字符,这样可以避免出现半个字符的情况

php中截取中文字符会出现乱码的问题

折月煮酒 提交于 2019-12-06 02:16:56
php中内置函数substr()可以对指定字符串进行截取,不过,它只对全英文字符串的截取是比较适合的。如果字符串中出现了中文,就有可能导致截取后出现乱码的问题,甚至在一些场景中如json编码的时候会导致输出结果为null。 原因是不同字符集中每个字符占用的字节数不一样,如UTF-8编码中每个汉字占3字节,而GB2312汉字占2字节,英文则都只占1字节。确切的说substr()中后两个参数指定的是字节数量而不是字符数量,所以就有可能出现最后一个汉字字符截取不完整的情况从而出现中文乱码。 遇到中文字符截取时,更好的方法是使用mbstring扩展库的mb_substr()/mb_strcut()函数。这两个方法比substr()在最后位置多一个参数,用来指定字符串编码。 $str = '无乱码的世界更和谐'; echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); mb_substr是按字符来切分字符串,而mb_strcut是按字节来切分字符串,但是都不会产生半个字符的现象,从而不会出现中文乱码。 如果提示 mb_substr()方法不存在,那是 服务器没有打开php_mbstring.dll扩展,需要在php.ini配置文件中把php_mbstring.dll打开。 extension=php_mbstring.dll 来源: