php中英文字符串长度截取的例子

使用此方法之前,请在php.ini中开启php_mbstring.dll扩展,将extension前面的;分号去掉即可

很多截取中文字符串的方法,大多不能实现按中文个数来截取所要的字符,
以下代码可以实现:

 代码如下 复制代码

<?php
mb_internal_encoding('UTF-8');
$str = "中文测试chineseTest";

header('content-type:text/html; charset=UTF-8');
echo mb_strlen($str);
echo '<br/>';
echo mb_substr($str,1,6);
?>

输出结果:
15
文测试chi

上面只是测试,下面整理例子。

 代码如下 复制代码

<?php
/*mb_string方法截取字符串长度
* $arr_str 数组或字符串
* $tlen 截取长度
* $fleid 要截取的字段(数组形式)
*/
header('Content-Type: text/html; charset=utf-8');
function interception($arr_str,$tlen,$fleid='') {
//判断是否是数组
if (is_array($arr_str)) {
//将数组下标重新排列
foreach ($arr_str as $key => $val) {
for ($k = 0; $k < count($fleid); $k++) {
$content = $arr_str[$fleid[$k]];
//判断是否大于指定的长度
if (mb_strlen($content,'utf-8') > $tlen) {
$arr_str[$fleid[$k]] = mb_substr($content,0,$tlen,'utf-8').'...';
}
}
}
}
//判断是否是字符串
elseif (is_string($arr_str)) {
if (mb_strlen($arr_str,'utf-8') > $tlen) {
$arr_str = mb_substr($arr_str,0,$tlen,'utf-8').'...';
}
}
return $arr_str;
}
//使用示例
//数组示例
$array = array(
'ha' => '哈尔滨市',
'bei' => '地球中国北京市',
);
//字符串示例
$string = '中国的互联网:商业化很牛,公共服务几乎没有谢文';
$string2 = 'abcdefghijkl';
print_r(interception($array,2,array('ha','bei')));
echo '<br />'.interception($string,5);
echo '<br />'.interception($string2,5);
?>

时间: 2024-10-03 05:51:32

php中英文字符串长度截取的例子的相关文章

利用PHP函数计算中英文字符串长度的方法_php技巧

本文实例讲述了利用PHP函数计算中英文字符串长度的方法.分享给大家供大家参考.具体实现方法如下: 一般来说大家知道英文字符占一个字节,而中文字符gbk占两个字符,utf8占三个字符,很多人印象中php计算字符串长度就是strlen()函数,其实不然,它计算的是字节的长度而非字符的长度,那么如何获取一个字符串中字符的长度呢?还有有mb_strlen(). 具体代码如下: 复制代码 代码如下: echo $str = 'PHP点点通';  echo strlen($str); //3*1+3*3=1

原生JavaScript实现字符串长度截取

先来看个例子 function cutstr(str, len) {  var temp;  var icount = 0;  var patrn = /[^\x00-\xff]/;  var strre = '';  for (var i = 0; i < str.length; i++) {  if (icount < len - 1) {  temp = str.substr(i, 1);  if (patrn.exec(temp) == null) {  icount = icount

利用PHP函数计算中英文字符串长度

例子  代码如下 复制代码 echo $str = 'PHP点点通';   echo strlen($str); //3*1+3*3=12 echo mb_strlen($str, 'gb2312'); //3*1+3*2=9 echo mb_strlen($str, 'utf-8'); //6 可恶的是,mb系列的函数并不是PHP核心函数,默认没有开启的,还有一个超简单的方法,通过正则将字符串分解为字符个体,计算字符的个数即为字符串的长度:www.111cn.net  代码如下 复制代码 <?

EasyUI DataGrid 时间格式化、字符串长度截取

显示效果: 日期:2016-01-01 时间:2016-01-01 11:11 标题:标题名称...   页面: <table id="tbList" style="height: 340px;" striped="true" rownumbers="true" iconcls="icon-edit" nowrap="false" idfield="Id" ur

字符串处理:中英文混排固定长度截取问题

/// <summary>    /// 从包含中英文的字符串中截取固定长度的一段,strInput为传入字符串,intLen为截取长度(一个汉字占两个位).    /// </summary>    public string cutString(string strInput,int intLen)    {     strInput=strInput.Trim();     byte[] myByte = System.Text.Encoding.Default.GetByt

php截取字符串长度函数详解

常用的字符处理函数  代码如下 复制代码 strstr(string,string) = strchr(,) //从前面第一次出现某个字符串的地方截取到最后 strrchr(string,string) //从某个字符串从最后出现的位置截取到结尾 strpos(string,string[,int]) //某个字符串第一次出现的位置 strrpos(string,string) //某个字符串最后一次出现的位置 substr(string,int[,int]) //从指定位置开始截取字符串,可以

控制输出字符串长度(自动区别中英文)

控制|区别|字符串 此ASP函数实现截取自定义长度的字符串,并可定义超出部分显示样式,支持中英文字符串自动判别 使用方法: 1.首先请将以上蓝框内代码转存为short.asp 2.我们使用DWMX2004新建一个ASP页面,内容如下 <%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%><%'引入公共函数模块%><!--#includefile="short.asp"--> 3.对目标截取

utf-8-关于PHP截取中英文字符串的几个问题

问题描述 关于PHP截取中英文字符串的几个问题 function substr_len($str, $len, $charset='utf-8'){ $len = intval($len); if(!is_numeric($len) || $len < 0){ return false; } $str_len = strlen($str); if($len >= $str_len){ return $str; } if($charset == 'utf-8'){ $char_step = 3;

对中英文字符串的长度的一点小解

字符串           对中英文字符串的长度的一点小解                  (jaklin   2000.8.9)        常常有人问到中英文字符串的长度和判断问题, 因为在ASP和SQL7中英文也只占用一个字节.其实是很简单, 只是麻烦一点而已.    一般来说对于中文和英文最大的区别在于它们的ASCII码不同, 因此可以通过它们的ASCII码来判别是不是英文, 并求出字符串的长度.中文的ASCII码值一般大于255.下面的函数是用于求中英文字符串的长度.