問題
希望從字符串的某個特定位置開始抽取這個字符串的一部分。例如,對於輸入到一個表單的用戶名,想要得到這個用戶名的前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 PHP
echo substr('I Love PHP!',-4,-2);
PH