小兔网

经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数。答案当然是有的。PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了。

 

 

substr()定义和用法

substr() 函数返回字符串的一部分。

注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。

语法

string substr(string string, int start, int [length])

 

参数描述
string必需。规定要返回其中一部分的字符串。
start必需。规定在字符串的何处开始。
  • 正数 - 在字符串的指定位置开始
  • 负数 - 在从字符串结尾的指定位置开始
  • 0 - 在字符串中的第一个字符处开始
length可选。规定要返回的字符串长度。默认是直到字符串的结尾。
  • 正数 - 从 start 参数所在的位置返回
  • 负数 - 从字符串末端返回

参数string为要操作的字符串,参数start为你要截取的字符串的开始位置,若start为负数时,则表示从倒数第start开始截取length个字符。

可选参数length为你要截取的字符串长度,若在使用时不指定则默认取到字符串结尾。若length为负数时,则表示从start开始向右截取到末尾倒数第length个字符的位置。

技术细节

返回值:返回字符串的提取部分,如果失败则返回 FALSE,或者返回一个空字符串。
PHP 版本:4+
更新日志:在 PHP 5.2.2 到 5.2.6 版本中,如果 start 参数表示负截断或者越界位置,则返回 FALSE。其他版本则从 start 位置开始获取字符串。

 

应用举例:

从第4个字符开始截取到字符串末尾,类似asp中的left:

<?php $str = "www.zhishitu.com"; echo substr($str,4); ?>

输出:zhishitu.com

 

PHP substr函数从右边截取3个字符,类似asp中的right:

<?php $str = "www.zhishitu.cn"; echo substr($str,-3); ?>

输出:.cn

 

PHP substr函数从第4个字符开始截取3个字符:

<?php $str = "www.zhishitu.com"; echo substr($str,4,3); ?>

输出:zhi

有时我们知道一个字符串的开始和结尾,中间是不定长的字符,这时除了用PHP substr函数的正则外我们还可以用substr实现(当然要得到中间的字符方法有N种,在此只是举例substr的应用):

本例去掉开头4个字符和结尾3个字符,输出中间的字符串:

<?php $str = "www.icoa.cn"; echo substr($str,4,-3); ?>

输出:icoa