php字符串substr,php字符串截取(substr的应用与扩展)

php是没有直接可用的substring函数,但是有substr函数。

$a="12me46";

echo(substr($a,2,2));//输出me

?>

substr() 函数返回字符串的一部分。

substr(string,start,length)

string:要截取的字符串

start:

正数 - 在字符串的指定位置开始

负数 - 在从字符串结尾的指定位置开始

0 - 在字符串中的第一个字符处开始

length:

可选。规定要返回的字符串长度。默认是直到字符串的结尾。

正数 - 从 start 参数所在的位置返回

负数 - 从字符串末端返回

php对中文字符串进行截取时,需要自行扩展函数,例如:

//中文字符串截取

//http://www.jbxue.com

function msubstr($str,$start=0,$length,$charset="utf-8",$suffix=true)

{

switch($charset){

case 'utf-8':$char_len=3;break;

case 'UTF8':$char_len=3;break;

default:$char_len=2;

}

//小于指定长度,直接返回

if(strlen($str)<=($length*$char_len)){

return $str;

}

if(function_exists("mb_substr")){

$slice= mb_substr($str, $start, $length, $charset);

}else if(function_exists('iconv_substr')){

$slice=iconv_substr($str,$start,$length,$charset);

}else{

$re['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";

$re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";

$re['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/";

$re['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";

preg_match_all($re[$charset], $str, $match);

$slice = join("",array_slice($match[0], $start, $length));

}

if($suffix)

return $slice."…";

return $slice;

}

?>

希望以上的代码,对大家有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值