在 PHP 中,urlencode()
和 urldecode()
函數用于對 URL 進行編碼和解碼。這些函數可以幫助您處理 URL 中的特殊字符,以確保它們在傳輸過程中不會引起問題。
urlencode()
對 URL 進行編碼當您需要將包含特殊字符的字符串添加到 URL 時,可以使用 urlencode()
函數對其進行編碼。例如:
$search_term = "PHP & MySQL";
$encoded_search_term = urlencode($search_term);
echo $encoded_search_term; // 輸出:PHP+%26+MySQL
這將把空格轉換為 +
符號,并將 &
符號轉換為 %26
。
urldecode()
對 URL 進行解碼如果您從 URL 中接收到編碼過的字符串,可以使用 urldecode()
函數對其進行解碼。例如:
$encoded_string = "PHP+%26+MySQL";
$decoded_string = urldecode($encoded_string);
echo $decoded_string; // 輸出:PHP & MySQL
這將把 +
符號轉換回空格,并將 %26
轉換回 &
符號。
http_build_query()
當您需要構建一個包含多個參數的 URL 時,可以使用 http_build_query()
函數。這個函數會自動對參數進行編碼,避免手動調用 urlencode()
。例如:
$params = [
'search' => 'PHP & MySQL',
'page' => 2,
];
$query_string = http_build_query($params);
echo $query_string; // 輸出:search=PHP+%26+MySQL&page=2
這將創建一個已編碼的查詢字符串,您可以將其添加到 URL 中。
$_GET
自動解碼 URL 參數當用戶請求包含查詢字符串的 URL 時,PHP 會自動解碼查詢參數并將其存儲在 $_GET
超全局變量中。因此,您無需手動調用 urldecode()
。例如:
// 假設 URL 是:example.com/search.php?search=PHP+%26+MySQL
echo $_GET['search']; // 輸出:PHP & MySQL
這將顯示解碼后的搜索詞 “PHP & MySQL”。
總之,在 PHP 中處理 URL 編碼和解碼時,可以使用 urlencode()
、urldecode()
、http_build_query()
和 $_GET
等函數和變量。這些工具可以幫助您輕松地處理 URL 中的特殊字符。