用分隔符拆分字串
explode
和 strstr
是通過分隔符獲取子字串的更簡單方法。
包含由公共字元分隔的幾個文字部分的字串可以使用 explode
函式拆分為多個部分。
$fruits = "apple,pear,grapefruit,cherry";
print_r(explode(",",$fruits)); // ['apple', 'pear', 'grapefruit', 'cherry']
該方法還支援限制引數,可以按如下方式使用:
$fruits= 'apple,pear,grapefruit,cherry';
如果 limit 引數為零,則將其視為 1。
print_r(explode(',',$fruits,0)); // ['apple,pear,grapefruit,cherry']
如果設定了 limit 並且為正數,則返回的陣列將包含最多限制元素,最後一個元素包含其餘字串。
print_r(explode(',',$fruits,2)); // ['apple', 'pear,grapefruit,cherry']
如果 limit 引數為負,則返回除最後一個 -limit 之外的所有元件。
print_r(explode(',',$fruits,-1)); // ['apple', 'pear', 'grapefruit']
explode
可以與 list
結合使用,將字串解析為一行中的變數:
$email = "user@example.com";
list($name, $domain) = explode("@", $email);
但是,請確保 explode
的結果包含足夠的元素,否則將觸發未定義的索引警告。
strstr
在第一次出現給定針之前剝離或僅返回子字串。
$string = "1:23:456";
echo json_encode(explode(":", $string)); // ["1","23","456"]
var_dump(strstr($string, ":")); // string(7) ":23:456"
var_dump(strstr($string, ":", true)); // string(1) "1"