查看: 667|回复: 0

PHP substr() 函数

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2024-5-25 17:59:31 | 显示全部楼层 |阅读模式
substr()函数的作用是返回字符串中的一部分内容,举例说明:
  1. <?php
  2. echo substr("Hello world",6);
  3. ?>
复制代码
返回的是world;
语法格式是:substr(string,start,length);
length是可选的
如果start参数是负数并且length长度小于或者等于start,则length为0;
解释:
start值为正数(例如10),表示从字符串左侧第一个字符(序号0)开始的第10个字符,如果第三个参数同时存在且为正数(例如5),表示从左侧第10个数开始截取5个字符长度;
start值为负数(例如-5),表示从字符串结尾的第一个字符(序号1)开始的指定位置(第5个字符,从末尾最后一个字符开始)开始截取;
start值为0,表示从字符串开头开始获取;
length值为正数,表示从start参数所在位置返回的字符串长度;
length值为负数,表示从start参数所指定的位置到字符串末端缩进位置返回的长度;
举例说明,举一反三:
  1. <?php
  2. echo substr("Hello world",10)."<br>";//字符串从0开始,空格是1个字符2019.02.28新增注释
  3. echo substr("Hello world",1)."<br>";
  4. echo substr("Hello world",3)."<br>";
  5. echo substr("Hello world",7)."<br>";

  6. echo substr("Hello world",-1)."<br>";
  7. echo substr("Hello world",-10)."<br>";
  8. echo substr("Hello world",-8)."<br>";
  9. echo substr("Hello world",-4)."<br>";
  10. ?>
复制代码
运行后分别返回:
d
ello world
lo world
orld
d
ello world
lo world
orld

以下代码为2018年11月21日补充更新:
  1. <?php
  2. echo "<b>一、start>=0的情况</b><br>";
  3. echo "<font color='red'>1、start为0和length空时返回全部字符。</font>";
  4. echo "<br>";
  5. echo substr("Hello worldpress. It's My First Program!",0);

  6. echo "<br>";
  7. echo "<font color='red'>2、start为0但length不为空(10)时,从左侧开始处返回10个字符。</font>";
  8. echo "<br>";
  9. echo substr("Hello worldpress. It's My First Program!",0,10);

  10. echo "<br>";
  11. echo "<font color='red'>3、start和length都为0时,不返回任何字符。</font>";
  12. echo "<br>";
  13. echo substr("Hello worldpress. It's My First Program!",0,0);

  14. echo "<br>";
  15. echo "<font color='red'>4、当start大于0(3),lendth为空时,从start后面返回所有的字符,当strat=3时,实际返回的是从第3+1个字符开始。</font>";
  16. echo "<br>";
  17. echo substr("Hello world. It's My First Program!",3);

  18. echo "<br>";
  19. echo "<font color='red'>5、当start大于0(3),lendth不为空(10)时,从start后面返回10个字符。</font>";
  20. echo "<br>";
  21. echo substr("Hello worldpress. It's My First Program!",3,10);
  22. echo "<br>";
  23. echo "<br>";


  24. echo "<b>二、start<0的情况</b><br>";
  25. echo "<font color='red'>1、当start为负数(-5),length为空时,返回以最右侧为开始的5个字符。</font>";
  26. echo "<br>";
  27. echo substr("Hello worldpress. It's My First Program!",-5);

  28. echo "<br>";
  29. echo "<font color='red'>2、当start为负数(-10),length不为空(5)时,返回5个以最右侧为第10(含)个字符开始的5个字符。</font>";
  30. echo "<br>";
  31. echo substr("Hello worldpress. It's My First Program!",-10,5);

  32. echo "<br>";
  33. echo "<font color='red'>3、当start为负数(-10),length不为空(-6)时,返回以最右侧开始的第10(含)个字符到以最右侧开始的6(不含)个字符之间的字符。</font>";
  34. echo "<br>";
  35. ?>
复制代码
运行结果如下图:


完整代码:
  1. <!DOCTYPE html>
  2. <html>
  3. <body>

  4. <?php
  5. echo "<b>一、start>=0的情况</b><br>";
  6. echo "<font color='red'>1、start为0和length空时返回全部字符。</font>";
  7. echo "<br>";
  8. echo substr("Hello worldpress. It's My First Program!",0);

  9. echo "<br>";
  10. echo "<font color='red'>2、start为0但length不为空(10)时,从左侧开始处返回10个字符。</font>";
  11. echo "<br>";
  12. echo substr("Hello worldpress. It's My First Program!",0,10);

  13. echo "<br>";
  14. echo "<font color='red'>3、start和length都为0时,不返回任何字符。</font>";
  15. echo "<br>";
  16. echo substr("Hello worldpress. It's My First Program!",0,0);

  17. echo "<br>";
  18. echo "<font color='red'>4、当start大于0(3),lendth为空时,从start后面返回所有的字符,当strat=3时,实际返回的是从第3+1个字符开始。</font>";
  19. echo "<br>";
  20. echo substr("Hello world. It's My First Program!",3);

  21. echo "<br>";
  22. echo "<font color='red'>5、当start大于0(3),lendth不为空(10)时,从start后面返回10个字符。</font>";
  23. echo "<br>";
  24. echo substr("Hello worldpress. It's My First Program!",3,10);
  25. echo "<br>";
  26. echo "<br>";


  27. echo "<b>二、start<0的情况</b><br>";
  28. echo "<font color='red'>1、当start为负数(-5),length为空时,返回以最右侧为开始的5个字符。</font>";
  29. echo "<br>";
  30. echo substr("Hello worldpress. It's My First Program!",-5);

  31. echo "<br>";
  32. echo "<font color='red'>2、当start为负数(-10),length不为空(5)时,返回5个以最右侧为第10(含)个字符开始的5个字符。</font>";
  33. echo "<br>";
  34. echo substr("Hello worldpress. It's My First Program!",-10,5);

  35. echo "<br>";
  36. echo "<font color='red'>3、当start为负数(-10),length不为空(-6)时,返回以最右侧开始的第10(含)个字符到以最右侧开始的6(不含)个字符之间的字符。</font>";
  37. echo "<br>";
  38. ?>
  39. </body>
  40. </html>
复制代码


以下为2019年2月28日补充内容:
  1. <?php
  2. echo "<b>一、start>=0的情况(2019年2月28日补充)</b><br>";

  3. echo "<font color='red'>6、当start为0,lendth小于0时(-5),表示从左侧第一个字符开始截取,然后去掉尾部的5个字符的所有字符。</font>";
  4. echo "<br>";
  5. echo substr("Hello world. It's My First Program!",0,-5);

  6. echo "<br>";
  7. echo "<font color='red'>7、当start大于0(3),lendth小于0(-5)时,表示从左侧第4个字符开始截取,然后去掉尾部的5个字符的所有字符。</font>";
  8. echo "<br>";
  9. echo substr("Hello worldpress. It's My First Program!",3,-5);
  10. echo "<br>";
  11. echo "<br>";
复制代码
运行结果如下:

2019年2月28日新增两个情况。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部