在 PHP 中,urlencode()
函數用于將字符串編碼為 URL 安全格式。這意味著,它會將特殊字符轉換為可以在 URL 中安全傳輸的格式。
要在 PHP 中安全地使用 urlencode()
,請遵循以下步驟:
$input = "This is a sample string with special characters: !*'();:@&=+$,/?%#[]";
urlencode()
函數對字符串進行編碼。$encoded_string = urlencode($input);
$encoded_string
包含了安全的 URL 編碼字符串,可以將其添加到 URL 中。$url = "https://example.com/search?query=" . $encoded_string;
urldecode()
函數。$decoded_string = urldecode($encoded_string);
注意:urlencode()
僅適用于查詢參數值。如果你需要編碼整個 URL(包括路徑和查詢參數),請考慮使用 parse_url()
和 http_build_query()
函數分別處理 URL 的不同部分,然后再進行編碼。
示例:
$url = 'https://example.com/測試?key=value&test=測試';
// 解析 URL
$parsed_url = parse_url($url);
// 對路徑進行編碼
$encoded_path = array_map('urlencode', explode('/', $parsed_url['path']));
$encoded_path = implode('/', $encoded_path);
// 對查詢參數進行編碼
$query_params = [];
parse_str($parsed_url['query'], $query_params);
$encoded_query = http_build_query($query_params);
// 重新構建 URL
$encoded_url = $parsed_url['scheme'] . '://' . $parsed_url['host'] . '/' . $encoded_path . '?' . $encoded_query;
echo $encoded_url;
這將輸出:
https://example.com/%E6%B5%8B%E8%AF%95?key=value&test=%E6%B5%8B%E8%AF%95