wcdz 发表于 2017-12-30 14:35:01

【PHP】字符串

问题

  希望从字符串的某个特定位置开始抽取这个字符串的一部分。例如,对于输入到一个表单的用户名,想要得到这个用户名的前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!

[*]如果 $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 PHPecho substr('I Love PHP!',-4,-2);PH
参见
  substr() 的有关文档
页: [1]
查看完整版本: 【PHP】字符串