> 백엔드 개발 > PHP 튜토리얼 > php mb_substr函数截取中文字符问题

php mb_substr函数截取中文字符问题

WBOY
풀어 주다: 2016-06-23 14:13:44
원래의
799명이 탐색했습니다.

使用php mb_substr函数截取一个变量的前2个与后2个字符,变量内容是中文字符,但只能输出前2个字符,无法输出后2个字符,是不是mb_substr函数不支持从尾部截取?还请高手指点。
$ip="广东省佛山市 电信 ";
echo mb_substr($ip,0,2,'utf-8');
echo mb_substr($ip,-2,'utf-8');
?>

当前输出结果:广东
希望输出结果:广东电信


谢谢!


回复讨论(解决方案)

第二句要报错。
string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )

 第二个参数 length

    str 中要使用的最大字符数。

mb_internal_encoding("UTF-8");
$ip="广东省佛山市 电信";
echo mb_substr($ip,0,2);
echo mb_substr($ip,-2);

晕,我在PPC也看到你了。。
问题比较纠结。$ip字符串中要考虑中文与空格,空格只会当成一个长度,所以想用strlen来确定字符长度进而截取字符是行不通的。

<?php$ip="广东省佛山市 电信 ";$ip=trim($ip);echo mb_substr($ip,0,2,'utf-8');echo gb_strrev(mb_substr(gb_strrev($ip),0,2,'utf-8')); function gb_strrev($str){  return implode('',  array_reverse(  preg_split('//u',$str)  )  );}?>
로그인 후 복사

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿