在 PHP 中,urlencode() 函數用于將字符串編碼為 URL 安全格式
使用 urlencode() 對 GET 參數進行編碼:
當你需要將變量作為 GET 參數附加到 URL 時,務必使用 urlencode() 對其進行編碼。這樣可以確保參數值正確傳遞給服務器,避免因特殊字符導致的問題。
$query = "search query";
$encodedQuery = urlencode($query);
$url = "https://example.com/search?q={$encodedQuery}";
使用 http_build_query() 創建經過編碼的查詢字符串:
http_build_query() 函數可以將關聯數組轉換為經過編碼的查詢字符串,方便地將多個參數附加到 URL。
$params = [
'key1' => 'value1',
'key2' => 'value with spaces',
];
$encodedParams = http_build_query($params);
$url = "https://example.com/api?" . $encodedParams;
使用 urlencode() 對 URL 路徑部分進行編碼:
如果你需要在 URL 路徑中包含動態值,請確保使用 urlencode() 對這些值進行編碼。
$category = "電子產品";
$encodedCategory = urlencode($category);
$url = "https://example.com/products/{$encodedCategory}/";
使用 rawurlencode() 對 URL 路徑和查詢參數進行編碼:
與 urlencode() 類似,rawurlencode() 也會將字符串編碼為 URL 安全格式。區別在于,rawurlencode() 不會將空格編碼為 +,而是保留為 %20。在處理 URL 路徑或查詢參數時,選擇合適的編碼函數以確保正確的編碼。
$path = "path with spaces";
$encodedPath = rawurlencode($path);
$url = "https://example.com/{$encodedPath}/";
解碼 URL 參數:
如果需要從 URL 中提取并解碼參數,可以使用 urldecode() 函數。
$encodedParam = "%E7%94%B5%E5%AD%90%E4%BA%A7%E5%93%81";
$decodedParam = urldecode($encodedParam);
echo $decodedParam; // 輸出:電子產品
遵循這些最佳實踐,可以確保在 PHP 中正確使用 urlencode() 和相關函數來處理 URL 編碼。