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

本例子实现中文截取会使用到php_mbstring.dll扩展了,所以必须在php.ini中把它们面的;号去去掉然后重启一下apache才可以用哦。

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

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

以下代码可以实现:

 代码如下复制代码

mb_internal_encoding('UTF-8');

$str = "中文测试chineseTest";

header('content-type:text/html; charset=UTF-8');

echo mb_strlen($str);

echo '
';

echo mb_substr($str,1,6);

?>

输出结果:

15

文测试chi

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

 代码如下复制代码

/*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 '
'.interception($string,5);

echo '
'.interception($string2,5);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值