字符串处理在实际应用中会频繁的用到,熟练掌握字符串截取技巧可以简化程序开发中很多代码处理。
substr—返回字符串的子串
stringsubstr(string$string,int$start[,int$length])
返回字符串string由start和length参数指定的子字符串。
参数说明:
string输入字符串。
start如果start是非负数,返回的字符串将从string的start位置开始,从0开始计算。例如,在字符串"abcdef"中,在位置0 字符是"a",位置2的字符串是"c"等等。
如果start是负数,返回的字符串将从string结尾处向前数第start个字符开始。
如果string的长度小于或等于start,将返回FALSE。
length如果提供了正数的 length,返回的字符串将从start处开始最多包括length个字符(取决于string的长度)。
如果提供了负数的length,那么string末尾处的许多字符将会被漏掉(若start是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回一个空字符串。
如果提供了值为0,FALSE或NULL的length,那么将返回一个空字符串。
如果没有提供length,返回的子字符串将从start位置开始直到字符串结尾。
示例代码:
echosubstr("abcdef",2);// 返回 "cdef"echo'
';echosubstr("abcdef",-3);// 返回 "def" 从倒数第二个字符开始取 直到结尾echo'
';echosubstr("abcdef",-2,2);// 返回 "ef" 从倒数第二个字符开始取2个字符echo'
';echosubstr("abcdef",0,-2);// 返回 "abcd" 长度为负数,截取掉从结尾开始的1个字符echo'
';echosubstr("abcdef",2,-1);// 返回 "cde"echo'
';echosubstr("abcdef",4,-4);// 返回 ""echo'
';echosubstr("abcdef",-3,-1);// 返回 "de"
substr用于截取字符串,如果遇到中文字符进行截取时,输出的结果可能不太是我们想要的(中文字符截取容易出现乱码),这时候就要使用另一个加强版的字符串截取函数:mb_substr()。
mb_substr—获取字符串的部分(PHP 4 >= 4.0.6, PHP 5, PHP 7)
stringmb_substr(string$str,int$start[,int$length=NULL[,string$encoding=mb_internal_encoding()]])
根据字符数执行一个多字节安全的substr()操作。位置是从str的开始位置进行计数。第一个字符的位置是0。第二个字符的位置是1,以此类推。
参数说明:
str从该string中提取子字符串。
startstr中要使用的第一个字符的位置。
lengthstr中要使用的最大字符数。 If omitted or NULL is passed, extract all characters to the end of the string.
encodingencoding参数为字符编码。如果省略,则使用内部字符编码。
返回值mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。
示例代码:
$str="贝加尔湖畔 在我的怀里 abcde 在你的眼里那里春风沉醉 那里绿草如茵月光把爱恋 洒满了湖面两个人的篝火 照亮整个夜晚多少年以后 如云般游走那变换的脚步 让我们难牵手这一生一世 有多少你我被吞没在月光如水的夜里多想某一天 往日又重现我们流连忘返 在贝加尔湖畔多少年以后 往事随云走那纷飞的冰雪容不下那温柔这一生一世 这时间太少不够证明融化冰雪的深情就在某一天 你忽然出现你清澈又神秘 在贝加尔湖畔你清澈又神秘 像贝加尔湖畔";echomb_substr($str,0,10,'utf8'); //贝加尔湖畔 在我的怀里 abc郭
注意:当设置utf8编码后,中文字符串一个汉字长度为1,一个空格长度也为1