substr — 返回字符串的子串

   语法:substr ( string $string , int $start [, int $length ] )

  返回值:返回字符串 stringstartlength 参数指定的子字符串。  或者在失败时返回 FALSE 。 

 

 

 示例:

<?php


//如果 start 是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。
echo substr(\'abcdefg\',2);  //cdefg

//如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。
echo substr(\'abcdefg\',-2); //fg

echo strlen(\'abcdefg\'); //7
//如果 string 的长度小于或等于 start,将返回 FALSE
var_dump(substr(\'abcdefg\',7));     //bool(false)



# 两个参数
//如果提供了正数的 length,返回的字符串将从 start 处开始最多包括 length 个字符(取决于 string 的长度)。
echo substr(\'abcdefg\',1,2); //bc

//如果提供了负数的 length,那么 string 末尾处的许多字符将会被漏掉(若 start 是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回一个空字符串。
echo  substr(\'abcdefg\',1,-1); //bcdef

echo  substr(\'abcdefg\',-3,-1); //ef

//如果提供了值为 0, FALSE  或 NULL  的 length,那么将返回一个空字符串
var_dump(substr(\'abcdefg\',1,0)); // string(0) ""

//如果没有提供 length,返回的子字符串将从 start 位置开始直到字符串结尾。
echo substr(\'abcdefg\',1); //bcdefg



#难度
echo substr(\'a中国g\',1);//中国g

echo  strlen(\'中国你好\');//12 utf-8 编码
echo substr(\'中国你好\',6);//因一个汉字代表3个字节 ->你好

echo substr(\'中国你好\',4);//��你好->乱码

/*
utf-8如何解决乱码
mb_substr 根据自汉字字节来截取
*/
echo mb_substr(\'中国你好\',1,3,\'UTF-8\');//国你好

  

版权声明:本文为xfych原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xfych/archive/2004/01/13/13426432.html