php中php数组截取函数数怎么用?

& 从数组中取出一段
PHP array_slice 从数组中取出一段
array_slice
array_slice & 从数组中取出一段
array array_slice
( array $array
, int $offset
[, int $length
[, bool $preserve_keys
如果 offset 非负,则序列将从 array
中的此偏移量开始。如果 offset 为负,则序列将从
array 中距离末端这么远的地方开始。
如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了
length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从
offset 开始一直到 array 的末端。
注意 array_slice() 默认将重置数组的键。自
PHP 5.0.2 起,可以通过将
preserve_keys 设为 TRUE 来改变此行为。
Example #1 array_slice() 例子
&?php$input&=&array("a",&"b",&"c",&"d",&"e");$output&=&array_slice($input,&2);&&&&&&//&returns&"c",&"d",&and&"e"$output&=&array_slice($input,&-2,&1);&&//&returns&"d"$output&=&array_slice($input,&0,&3);&&&//&returns&"a",&"b",&and&"c"//&note&the&differences&in&the&array&keysprint_r(array_slice($input,&2,&-1));print_r(array_slice($input,&2,&-1,&true));?&
以上例程会输出:
PHP数组 - 函数1.substr(源字符串,其实位置[,长度])-截取字符串返回部分字符串&?php
echo substr($str, 2);
echo substr($str, 2,3); //pdd
echo substr($str, -2); //om 负数从结尾开始取
?&但是当你截取中文字符串的时候很容易出现乱码,因为一个汉字是两个字节,而一个英文字母是一个字节。解决办法如下:2.mb_substr(),使用方法和substr相同,不过要开启php.ini里面extension=php_mbstring.dll扩展,不用担心,一般的空间商都会开启这个扩展的。&?php
echo mb_substr("php点点通", 1,3,"UTF-8");
?&网上也有很多中文字符串截取教程,实现起来比较复杂,感觉还是用php自带的函数实现起来比较好。整理的网络资料(php代码)如下:(1)截取GB2312中文字符串&?php
//截取GB2312中文字符串
function mysubstr($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $
for($i = 0; $i & $ $i++) {
if(ord(substr($str, $i, 1)) & 0xa0) {
$tmpstr .= substr($str, $i, 2);
$tmpstr .= substr($str, $i, 1);
echo mysubstr("php点点通", 1, 5);
?&(2)截取utf8编码的多字节字符串&&?php
//截取utf8字符串
function utf8Substr($str, $from, $len)
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
echo utf8Substr("php点点通", 1, 5); //hp点点通
?&(3)支持 utf-8、gb2312都支持的汉字截取函数&&?php
//同时支持 utf-8、gb2312都支持的汉字截取函数 ,默认编码是utf-8
function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
if($code == 'UTF-8')
$pa ="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start & $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
return join('', array_slice($t_string[0], $start, $sublen));
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = ''; for($i=0; $i&$ $i++)
if($i&=$start && $i&($start+$sublen))
if(ord(substr($string, $i, 1))&129)
$tmpstr.= substr($string, $i, 2);
$tmpstr.= substr($string, $i, 1);
if(ord(substr($string, $i, 1))&129) $i++;
if(strlen($tmpstr)&$strlen ) $tmpstr.= "...";
$str = "php点点通提供原创php教程";
echo cut_str($str, 8, 0);
//php点点通提供...thinkphp中字符截取函数msubstr()用法分析
thinkphp中字符截取函数msubstr()用法分析
本文实例讲述了thinkphp中字符截取函数msubstr()用法。分享给大家供大家参考,具体如下:
ThinkPHP有一个内置字符截取函数msubstr()如下:
msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
$str:要截取的字符串
$start=0:开始位置,默认从0开始
$length:截取长度
$charset="utf-8":字符编码,默认UTF-8
$suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示
ThinkPHP入门教程》及《ThinkPHP常用方法总结》
希望本文所述对大家基于thinkPHP框架的PHP程序设计有所帮助。
Copyright & 2016 phpStudy当前位置: &
关注 第一PHP社区 微信公众号,获取更多最新PHP技术分享打酱油震惊呵呵赞鄙视标签: ,,注:与内容无关的评论将被删除,严重者禁用帐号! | 最新评论不吐不快,赶紧来一发!栏目推荐关注 第一PHP社区 微信公众号热门点击本站推荐
| 中国最专业的PHP中文社区 |
Copyright (C) 1998 - . All Rights Reserved
第一PHP社区
版权所有 快云为本站提供专业云计算服务 &&&&&Google提供的广告

我要回帖

更多关于 php截取时间函数 的文章

 

随机推荐