使用php mb_substr函数截取一个变量的前2个与后2个字符,变量内容是中文字符,但只能输出前2个字符,无法输出后2个字符,是不是mb_substr函数不支持从尾部截取?还请高手指点。
<?php
$ip="广东省佛山市 电信 ";
echo mb_substr($ip,0,2,'utf-8');
echo mb_substr($ip,-2,'utf-8');
?>当前输出结果:广东
希望输出结果:广东电信
谢谢!
<?php
$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 中要使用的最大字符数。
$ip="广东省佛山市 电信";
echo mb_substr($ip,0,2);
echo mb_substr($ip,-2);
问题比较纠结。$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) ) );
}
?>