Rumah > pembangunan bahagian belakang > tutorial php > php字符串截取(substr的应用与扩展)

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

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

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

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

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;
}
?>
Salin selepas log masuk

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



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan