(PHP 4, PHP 5)
substr — 返回字符串的子串
說明
string substr ( string$string
, int $start
[, int $length
] )
返回字符串 string
由 start
和 length
參數指定的子字符串。
參數
string
輸入字符串。
start
如果 start
是非負數,返回的字符串將從 string
的 start
位置開始,從 0 開始計算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。
如果 start
是負數,返回的字符串將從 string
結尾處向前數第 start
個字符開始。
如果 string
的長度小于或等于 start
,將返回 FALSE
。
Example #1 使用負數 start
<?php
$rest = substr("abcdef", -1); // 返回 "f"
$rest = substr("abcdef", -2); // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
?>
length
如果提供了正數的 length
,返回的字符串將從 start
處開始最多包括 length
個字符(取決于 string
的長度)。
如果提供了負數的 length
,那么 string
末尾處的許多字符將會被漏掉(若 start
是負數則從字符串尾部算起)。如果 start
不在這段文本中,那么將返回一個空字符串。
如果提供了值為 0,FALSE
或 NULL
的 length
,那么將返回一個空字符串。
如果沒有提供 length
,返回的子字符串將從 start
位置開始直到字符串結尾。
Example #2 使用負數 length
<?php
$rest = substr("abcdef", 0, -1); // 返回 "abcde"
$rest = substr("abcdef", 2, -1); // 返回 "cde"
$rest = substr("abcdef", 4, -4); // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de"
?>
返回值
返回提取的子字符串, 或者在失敗時返回 FALSE
。
更新日志
版本
說明
5.2.2 - 5.2.6
If the start
parameter indicates the position of
a negative truncation or beyond, false is returned. Other versions get
the string from start.
范例
Example #3 substr() 基本用法
<?php
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// 訪問字符串中的單個字符
// 也可以使用中括號
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
Example #4 substr() casting behaviour
<?php
class apple {
public function __toString() {
return "green";
}
}
echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>
以上例程會輸出:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) false 6) false 7) '1200'
錯誤/異常
錯誤時返回 FALSE
。
<?php
var_dump(substr('a', 1)); // bool(false)
?>
參見
strrchr() - 查找指定字符在字符串中的最后一次出現 substr_replace() - 替換字符串的子串 preg_match() - 執行一個正則表達式匹配 trim() - 去除字符串首尾處的空白字符(或者其他字符) mb_substr() - 獲取字符串的部分 wordwrap() - 打斷字符串為指定數量的字串 字符串訪問和修改