bookfrank

问题

希望从字符串的某个特定位置开始抽取这个字符串的一部分。例如,对于输入到一个表单的用户名,想要得到这个用户名的前8个字符。

解决

使用substr()选择子串

$substring = substr($string,$start,$length);
$username = substr($_GET[\'username\'],0,8);

讨论

1.如果$strart$length都是正数,substr()会返回字符串从$start开始的$lenfth个字符。字符的第一个位置为0

echo substr(\'I Love PHP!\',3,5);
ove P
  • 如果忽略$length,substr()会返回从$strart到原字符串末尾的子串。

起始位置为正数,未指定长度

echo substr(\'I Love PHP!\',3);
ove PHP!
  • 如果$start大于字符串的长度,substr()将会返回false
  • 如果$start$length 超过了字符串末尾,substr()将返回从$start开始到字符串末尾的所有字符
echo substr(\'I Love PHP!\',3,9);
ove PHP!
  1. 如果 $start 为负数, substr() 会从字符串末尾倒数来确定子串从哪里开始
echo substr(\'I Love PHP!\',-4);
PHP!
echo substr(\'I Love PHP!\',-4,3);
PHP
  • 如果 $start 值为负数,而且超过了字符串的开始位置, substr() 就会把 $start 当作 0 来处理

  • 如果 $length 为负数, substr() 会从字符串末尾倒数来确定到哪里结束

echo substr(\'I Love PHP!\',3,-1);
Love PHP
echo substr(\'I Love PHP!\',-4,-2);
PH

参见

substr() 的有关文档

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-13
猜你喜欢
  • 2021-08-22
  • 2021-11-27
  • 2022-12-23
  • 2021-11-17
  • 2021-11-13
相关资源
相似解决方案