substr() 可從字串指定位置、指定長度擷取子字串。位置可為正數(從左算起,0 起算)或負數(從右算起,-1 為最後一字元)。
substr(string $string, int $offset, int|null $length = null): string
<?php $string = "beginning"; echo "從左算起 0 長度 5: " . substr($string, 0, 5) . "\n"; // begin echo "從右算起 -7 長度 3: " . substr($string, -7, 3) . "\n"; // gin ?>
從左算起 0 長度 5: begin 從右算起 -7 長度 3: gin
| 呼叫方式 | 說明 | 範例 (字串 "abcdef") |
|---|---|---|
| substr($s, 2) | 從索引 2 到結尾 | "cdef" |
| substr($s, -3) | 倒數 3 字元 | "def" |
| substr($s, 1, 3) | 索引 1 起長度 3 | "bcd" |
| substr($s, -4, 2) | 倒數 4 起長度 2 | "cd" |
$str = "中文測試"; echo substr($str, 0, 3); // 亂碼(按位元組切) echo mb_substr($str, 0, 2); // "中文"(按字元切)
$str[0]、$str[-1] (PHP 8+) 更快掌握正負索引,靈活擷取所需片段。