PHP URL 디코딩 함수
PHP에서 URL 디코딩을 수행하는 함수는 크게 세 가지가 있습니다.
urldecode()
함수, rawurldecode()
함수, 그리고 parse_str()
함수입니다. 이 함수들은 URL에서 사용할 수 있는 형식으로 인코딩된 문자열을 디코딩하는 데 사용되는 서로 다른 방법을 제공합니다. 각 함수의 특징과 사용 방법을 비교해보겠습니다.
같이 보기
PHP URL 디코딩 함수 비교
urldecode()
함수
각 함수의 사용 목적과 특징을 비교하면 다음과 같습니다.
비교 항목 | urldecode() |
rawurldecode() |
parse_str() |
---|---|---|---|
사용 목적 | 주로 urlencode() 함수로 인코딩된 URL을 디코딩할 때 사용 |
주로 rawurlencode() 함수로 인코딩된 URL을 디코딩할 때 사용 |
주로 http_build_query() 함수로 인코딩 된 쿼리 문자열을 디코딩하여 변수로 구문 분석하는데 사용 |
디코딩 | 퍼센트 (%) 기호와 뒤에 있는 두 개의 16진수 숫자로 이어진 인코딩된 문자를 실제 문자로 변환하여 디코딩하고, 더하기 기호(+ )는 공백 문자로 디코딩 |
퍼센트 (% ) 기호와 뒤에 있는 두 개의 16진수 숫자로 이어진 인코딩된 문자를 실제 문자로 변환하여 디코딩하고, %20 은 공백 문자로 디코딩 |
URL에서 사용할 수 있는 형식으로 인코딩된 쿼리 문자열을 디코딩하여 변수로 구문 분석 |
다음은 각 함수를 사용하는 방법입니다.
// 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 )
사용 목적에 따른 디코딩 함수 사용 예제
각 함수의 사용 목적에 따른 예제를 살펴보겠습니다.
urldecode()
함수: urlencode()
함수로 인코딩된 URL을 디코딩
/* 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
rawurldecode()
함수: rawurlencode()
함수로 인코딩된 URL을 디코딩
/* 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
parse_str()
함수: http_build_query()
함수로 인코딩된 쿼리 문자열을 디코딩하여 변수로 구문 분석
$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 )
같이 보기
- PHP urlencode() 함수 – 문자열을 URL 인코딩
- PHP rawurlencode() 함수 – RFC 3986에 따른 URL 인코딩
- PHP http_build_query() 함수 – 배열 또는 객체를 URL 인코딩하여 쿼리 문자열 생성
- PHP urlencode()로 인코딩된 URL 디코딩 – urldecode() 함수
- PHP rawurlencode()로 인코딩된 URL 디코딩 – rawurldecode() 함수
- PHP parse_str() 함수 – URL 쿼리 문자열 디코딩, 변수로 구문 분석
- PHP URL 인코딩 함수 비교