// urldecode() 함수
$str = 'Hello, wold!';
$encoded_str = urlencode($str);
echo $encoded_str; // 출력: Hello%2C+wold%21
echo '<br>';

$decodedString = urldecode($encoded_str);
echo $decodedString; // 출력: Hello, wold!
echo '<br>';

// rawurldecode() 함수
$str = 'Hello, wold!';
$encoded_str = rawurlencode($str);
echo $encoded_str; // 출력: Hello%2C%20wold%21
echo '<br>';

$decodedString = urldecode($encoded_str);
echo $decodedString; // 출력: Hello, wold!
echo '<br>';

// parse_str() 함수
$array = [
    'name' => 'hypertext processor',
    'age' => 30,
];
$encoded_query = http_build_query($array, '', '&', PHP_QUERY_RFC1738);
echo $encoded_query; // 출력: name=hypertext+processor&age=30
echo '<br>';

parse_str($encoded_query, $decodedArray);
print_r($decodedArray); // 출력: Array ( [name] => hypertext processor [age] => 30 )
/* URL에서 사용할 수 있는 형식으로 문자열을 인코딩 */
$url = 'https://www.example.com/page.php?name=John Doe';
$encoded_url = urlencode($url);
echo $encoded_url . '<br>';
// 출력: https%3A%2F%2Fwww.example.com%2Fpage.php%3Fname%3DJohn+Doe

/* urlencode()로 인코딩된 URL을 디코딩 */
$decoded_url = urldecode($url);
echo $decoded_url;
// 출력: https://www.example.com/page.php?name=John Doe
/* rawurlencode() 함수로 URL에 사용할 수 있도록 인코딩 */
$url = 'https://www.example.com/page.php?name=John Doe';
$encoded_url = rawurlencode($url);
echo $encoded_url . '<br>';
// 출력: https%3A%2F%2Fwww.example.com%2Fpage.php%3Fname%3DJohn%20Doe

/* rawurlencode()로 인코딩된 URL을 디코딩 */
$decoded_url = rawurldecode($url);
echo $decoded_url;

// 출력: https://www.example.com/page.php?name=John Doe
$data = array(
    'name' => 'John Doe',
    'age' => 30,
    'city' => 'New York'
);

$queryString = http_build_query($data);
echo '인코딩된 URL 문자열: ' . $queryString . '<br>';
// 출력: 인코딩된 URL 문자열: name=John+Doe&age=30&city=New+York

// parse_str() 함수를 사용하여 디코딩
parse_str($queryString, $decodedArray);

// 디코딩된 결과를 출력
echo '디코딩된 배열: ';
print_r($decodedArray);
// 출력: 디코딩된 배열: Array ( [name] => John Doe [age] => 30 [city] => New York )