/* urlencode() 함수를 사용하여 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() 함수로 쿼리 파라미터 값을 인코딩 */
$keyword = 'iPhone & Galaxy/Note=100% #1';
$encoded = rawurlencode($keyword);

echo 'https://example.com/search?query=' . $encoded;
// 출력: 'https://example.com/search?query=iPhone%20%26%20Galaxy%2FNote%3D100%25%20%231'

/* urlencode()로 인코딩된 쿼리 파라미터 값을 디코딩 */
$decoded = rawurldecode($encoded);
echo $decoded;
// 출력: 'iPhone & Galaxy/Note=100% #1'
// URL에서 사용할 수 있는 문자열 형식으로 인코딩할 배열
$data = array(
    'name' => 'John Doe',
    'age' => 30,
    'city' => 'New York'
);

// http_build_query() 함수를 사용하여 쿼리 문자열로 인코딩
$queryString = http_build_query($data);
echo $queryString; // 출력: name=John+Doe&age=30&city=New+York'

// parse_str() 함수를 사용하여 디코딩
// 구문 분석한 데이터를 두 번째 인자인 $decodedArray에 배열 형태로 저장
parse_str($queryString, $decodedArray);

print_r($decodedArray); // 출력:  Array ( [name] => John Doe [age] => 30 [city] => New York )