Heim  >  Artikel  >  Backend-Entwicklung  >  php字符串截取(substr的应用与扩展)

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

WBOY
WBOYOriginal
2016-07-25 08:59:47887Durchsuche
php中可以对中文或英文字符串进行截取,英文稍简单,中文稍复杂,本文针对substr函数进行介绍,并对该函数作了扩展,有需要的朋友,可以参考下。

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

<?
$a="12me46";
echo(substr($a,2,2));//输出me
?> 

substr() 函数返回字符串的一部分。 substr(string,start,length) string:要截取的字符串 start: 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾的指定位置开始 0 - 在字符串中的第一个字符处开始 length: 可选。规定要返回的字符串长度。默认是直到字符串的结尾。 正数 - 从 start 参数所在的位置返回 负数 - 从字符串末端返回

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

<?php
//中文字符串截取
//http://bbs.it-home.org
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;
}
?>

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



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn