PHP 截取字符串 substr() 函数

定义和用法
substr() 函数返回字符串的一部分。
注:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。

语法
:
substr(string,start,length)
参数描述
string必需。规定要返回其中一部分的字符串。
start必需。规定在字符串的何处开始。
正数 – 在字符串的指定位置开始
负数 – 在从字符串结尾开始的指定位置开始
0 – 在字符串中的第一个字符处开始
如果 $start 是非负数,那么字符串将从 $string 的第 $start 个字符处开始截取,$start 从 0 开始计算。例如在字符串“abcdef”中,在 0 位置的字符是“a”,在 2 位置的字符串是 “c” 等等;
如果 $start 是负数,那么字符串将从 $string 结尾处向前数第 $start 个字符开始,$start 从 -1 开始计算。例如在字符串“abcdef”中,在 -1 位置的字符是“f”,在 -3 位置的字符是“d”等等;
如果 $string 的长度小于 $start,将返回 FALSE。
length可选。规定被返回字符串的长度。默认是直到字符串的结尾。
正数 – 从 start 参数所在的位置返回的长度
负数 – 从字符串末端返回的长度
如果 $length 为正数,那么字符串将从 $start 位置向后截取最多 $length 个字符;
如果 $length 为负数,那么 $string 末尾的 $length 个字符将会被省略(若 $start 是负数则从字符串尾部算起);
如果 $length 的值为 0,FALSE 或 NULL,那么将返回一个空字符串;
如果没有提供 $length,那么返回的子字符串将从 $start 位置开始直到字符串的结尾。
返回值:返回字符串的提取部分,若失败则返回 FALSE,或者返回一个空字符串。
PHP 版本:4+
更新日志:在 PHP 5.2.2 到 5.2.6 版本中,如果 start 参数表示负截断或者越界位置,则返回 FALSE。其他版本则从 start 位置开始获取字符串。

示例:

//使用带有不同正负数的 start 参数:
echo substr("Hello world",10)."<br>";//输出结果为:d
echo substr("Hello world",-1)."<br>";//输出结果为:d


//使用带有不同正负数的 start 和 length 参数:
echo substr("Hello world",0,10)."<br>";//输出结果为:Hello worl
echo substr("Hello world",0,-1)."<br>";//输出结果为:Hello worl



$str = 'http://www.zhuei.cn/category/code/php/';
echo substr($str, 7).'<br>';//输出结果为:www.zhuei.cn/category/code/php/
echo substr($str, -5).'<br>';//输出结果为:/php/
echo substr($str, 7, 15).'<br>';//输出结果为:www.zhuei.cn/ca
echo substr($str, 7, -5).'<br>';//输出结果为:www.zhuei.cn/category/code
echo substr($str, -20, -5).'<br>';//输出结果为:uei.cn/category/code
echo substr($str, -20, 15).'<br>';//输出结果为:uei.cn/category
var_dump(substr($str, 40));//输出结果为:bool(false)
var_dump(substr($str, 7, 0));//输出结果为:string(0) ""

substr() 函数对英文的处理是没有任何问题的,但是在开发中我们往往是处理中文字符比较多,substr() 函数虽然也能处理中文,但不是很完美存在问题。

中文字符串截取可以使用mb_substr()函数,关于更多PHP截取的方法可以查看:PHP 截取(提取)字符串中所需内容使用不同函数的几种解决方法

如果你发现错误或有其他见解,请给www.zhuei.cn留言,我们会尽快更新本文!

发表评论

邮箱地址不会被公开。 必填项已用*标注