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

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 $str;  //截取长度等于0或大于等于本字符串的长度,返回字符串本身

}

elseif ($length < 0)  //如果截取长度为负数

{ $length = $strlength + $length;//那么截取长度就等于字符串长度减去截取长度

if ($length < 0)

{$length = $strlength;//如果截取长度的绝对值大于字符串本身长度,则截取长度取字符串本身的长度

}

}

if (function_exists(‘mb_substr‘))

{$newstr = mb_substr($str, 0, $length, EC_CHARSET);

}

elseif (function_exists(‘iconv_substr‘))

{$newstr = iconv_substr($str, 0, $length, EC_CHARSET);

}

else

{//$newstr = trim_right(substr($str, 0, $length));

$newstr = substr($str, 0, $length);

}

if ($append && $str != $newstr)

{$newstr .= ‘...‘;

}

return $newstr;

}

时间: 2024-10-21 16:27:44

mb_substr()----------php的相关文章

mb_substr函数

定义和用法 mb_substr() 截取字符串中指定长度字符 注:常用于中文截取,可以避免截取时候出现乱码,即截取半个字符的情况. 类似函数 substr(),iconv_substr() 语法 mb_substr(str,start,length,encoding) 参数   描述 str 用来截取的字符串 strart 开始位置 length 截取长度 encoding 字符编码 例子 1 <?php // 注意编码,一般使用utf-8,如果你的网站使用的是gbk,或者gb2312,请换到相

PHP方法之 mb_substr

主要功能:中文字符串截取,解决substr中文截取问题,用法基本和substr相同,他可以指定编码. 函数原型:string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) 参数解释: str 从该 string 中提取子字符串. start str 中要使用的第一个字符的位置. length str 中要使用的最大字符数. I

substr(),mb_substr()及mb_strcut函数用法与区别

substr()函数 substr(string,start,length) string表示要截取的对象,start表示从哪个位置开始截取,0表示从头开始,正数表示从这个数的位置后面截取,负数表示从结尾算开始截取的位置,但依然是从左到右截,length表示截取长度.负数表示排除或忽略结尾多少个字符.比如:  代码如下 复制代码 <?php $siteurl = 'www.111cn.net';print_r (substr($siteurl,4));exit; //则返回:  111cn.ne

用到了函数substr与iconv_substr,mb_substr

<html> <head><meta charset='utf-8'> <title>截取中文字符串_脚本之家_www.jb51.net</title> </head> <body> <?php $str='123脚本之家456欢迎大家的光临'; echo substr($str,0,4); echo '<br>'; echo iconv_substr($str,0,4,'utf-8'); echo '&

PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数

一.中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字数 $encoding,网页编码,如utf-8,GB2312,GBK 实例: <?php $str='脚本之家:http://www.jb51.net'; echo mb_substr($str,0,4,'utf-8');//截取头5个字,假定此代码所在php文件的编码为utf

PHP中Call to undefined function mb_substr()处理方法!

最近开发微信扩展功能,用到了mb_substr()函数.系统在windows下测试都是正常的,但是放到aliyun(选用的Centos系统)下面就出现了问题,Call to undefined function mb_substr(),报出这个异常. 很显然,这是调用了没有定义的函数,可是环境都采用yum安装的,Apache和PHP都是自动安装的.怎么会出现这个错误呢?其实PHP本身也是可配置的,安装时候除了必须的扩展库会自动安装上之外,其他的库默认是不会安装的. 解决办法: yum insta

PHP截断函数mb_substr()详细介绍

在php中mb_substr()函数是用来截中文与英文的函数,可以方便快速的解决截取指定字符长度的问题,下面我来给大家介绍介绍.提示:mb_substr在于php中是默认不被支持的我们需要在在windows目录下找到php ini打开编 在php中mb_substr()函数是用来截中文与英文的函数,可以方便快速的解决截取指定字符长度的问题,下面我来给大家介绍介绍. 提示:mb_substr 在于php中是默认不被支持的我们需要在在windows目录下找到php.ini打开编辑,搜索mbstrin

PHP截断函数mb_substr()

在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,需要截断的字符串 

substr mb_substr mbstrct 的用法区别

1.substr遇到中文会出问题,用于截取英文字符 2.mb_substr() 按字符截取字符串,需要开启php_mbstring.dll <?php echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?>结果:这样一来我的字 3.mb_strct() 按字节截取字符串,需要开启php_mbstring.dll <?php echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?&