substr函数在php中的应用

来源:互联网 发布:三维码生成软件 编辑:程序博客网 时间:2024/04/19 06:29

 新手 在php的学习过程中中,遇到substr()这个函数, 刚开始有点难理解,那么这个函数到底有什么功能呢?

substr()返回字符串的一部分(指定开始和长度参数);

手纸(php手册)里边是这样描述的  string substr ( string string, int start [, int length] )

括号里边的string是你要从中间取字符的内容(这个必须得有),start是开始的位置,length是所取的长度。

下边是基本的例子:

<?php

echo substr('abcdef',1);     // bcdef
echo substr('abcdef',1, 3);  // bcd
echo substr('abcdef',0, 4);  // abcd
echo substr('abcdef',0, 8);  // abcdef
echo substr('abcdef', -1,1); // f
?>

第一个echo的substr()后边只有一个数字,这个数字就是我们描述里边的start,意思是从字符abcdef的第一位起往后取所有的字符(因为第三个参数length长度没有定义,php默认取第一位后边的所有字符,【包括第一位】),start的位数是从0位开始的,也就是0位对应的是a字符,第一位对应的是b。echo substr('abcdef',1);就是取第一位开始(也就是b,包括b)向后边取所有的字符。

第二个echo同理从第一位开始,但是只取3个长度的字符所以只有bcd

第三个echo道理是一样的,从第0位开始取,取4个长度。

第四个取得长度大于原有字符长度,所以就全取啦。

第五个echo有个负号,负号就是从后边开始数,记住从后边开始数的时候没有0的因此,-1就对应的是f 这个字符,取1个长度,那就是f了。

很好理解吧。

还有一种情况是长度为负数:

<?php
echo substr("abcdef",0, -1);  // returns "abcde"
echo substr("abcdef",2, -1);  // returns "cde"
echo substr("abcdef",4, -4);  // returns ""
echo substr("abcdef", -3, -1); // returns "de"
?>

长度为负数可以理解为去掉倒数第几位以后的字符

如第一个echo 就是从第0位取起,取到abcdef,并且去掉最后一位字符f,就得到abcde.

第二个echo就同理了,从第二个(也就是c字符)取起,去掉f

而第三个有点奇怪了,显然为空字符对不对。

第四个就是从-3位(也就是d字符),-1位置的f不要,就是de了。
                                                                                                          【Haizy  原创 】