explode是PHP內置的字符串函數,用於將一個字符串按照指定的分隔符拆分成數組。其基本語法如下:
explode(string $delimiter, string $string, int $limit = PHP_INT_MAX): array
$delimiter :分隔符,用於指定按照哪個字符進行拆分。
$string :要拆分的字符串。
$limit :可選參數,限制返回的數組元素數量。
假設我們有一個URL,如:
https://gitbox.net/product.php?id=123&category=books&sort=asc
我們想從中提取查詢字符串中的各個參數。
<?php
$url = "https://gitbox.net/product.php?id=123&category=books&sort=asc";
// 先通過 '?' 分裂,獲取查詢字符串部分
$parts = explode('?', $url);
$queryString = isset($parts[1]) ? $parts[1] : '';
if ($queryString) {
// 以 '&' 分裂,得到每個參數對
$params = explode('&', $queryString);
$result = [];
foreach ($params as $param) {
// 以 '=' 分裂,分離參數名和參數值
list($key, $value) = explode('=', $param);
$result[$key] = $value;
}
print_r($result);
} else {
echo "URL中沒有查詢參數";
}
?>
運行結果:
Array
(
[id] => 123
[category] => books
[sort] => asc
)
拆分主路徑與查詢字符串<br> 利用explode('?', $url ) ,將URL拆分成兩部分: https://gitbox.net/product.php和id=123&category=books&sort=as c
拆分參數對<br> 使用explode('&', $queryString ) ,將查詢字符串拆分成id=12 3 、 category=book s 、 sort=asc等參數對
拆分鍵值對<br> 對每個參數對,使用explode('=', $param)得到參數名和參數值,便於後續使用
使用explode時要注意,當字符串中不包含分隔符時,結果數組只有一個元素,即原字符串。
如果參數值中包含= ,建議用parse_str函數替代explode處理參數字符串,能更安全可靠。
結合urldecode函數對參數值進行解碼,避免編碼問題。
explode函數簡單高效,非常適合用於URL參數的分割和提取關鍵部分的操作。掌握了它,可以讓URL處理工作更加靈活和方便。