본문 바로가기
개발자 이야기/PHP

parse_str()

by 집사개발자 2025. 5. 16.
반응형

📌 1. 함수 원형 (Function Prototype)

void parse_str(string $string, array &$result)
  • $string: 쿼리 형식의 문자열 (예: "a=1&b=2").
  • $result: 결과를 저장할 배열. 이 인수를 생략하면, 변수들이 전역 스코프에 직접 할당됩니다 (PHP 7.2.0 이후에는 사용 비추천).

 

📌 2. 함수 설명 (Function Description)

parse_str() 함수는 URL 쿼리 문자열을 파싱하여, 변수 또는 연관 배열로 변환합니다.

  • $result를 명시하면 그 배열에 키-값 쌍을 넣습니다.
  • $result를 생략하면 문자열에 포함된 변수명이 현재 스코프(전역 또는 로컬)에 직접 변수로 생성됩니다 (하지만 보안 및 가독성 문제로 비추천).

 

 

📌 3. 실행 가능한 PHP 버전

  • 지원 시작: PHP 4.0.0
  • PHP 7.2.0부터 $result 매개변수 생략 사용을 비추천 (Deprecated)
  • PHP 8.0.0부터 $result 생략 시 경고 발생

 

 

📌 4. 함수 사용 예제 (Usage Example)

✅ 예제 1: 결과를 배열에 저장

<?php
$query = "name=John&age=30&city=Seoul";
parse_str($query, $result);

print_r($result);
?>

출력 결과:

Array
(
    [name] => John
    [age] => 30
    [city] => Seoul
)


✅ 예제 2: 결과를 변수로 직접 생성 (비추천, PHP 7.2 이전에만 안전)

<?php
$query = "foo=bar&baz=qux";
parse_str($query);

echo $foo; // 출력: bar
echo $baz; // 출력: qux
?>
⚠️ 이 방식은 PHP 7.2.0 이후 비추천되며, PHP 8.0.0 이상에서는 경고가 발생합니다

 

✅ 예제 3:  parse_url()과 함께 사용

<?php
$url = "https://example.com/page.php?product=shirt&color=blue&size=medium";

$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $params);

print_r($params);
?>

출력 결과:

Array
(
    [product] => shirt
    [color] => blue
    [size] => medium
)
반응형

'개발자 이야기 > PHP' 카테고리의 다른 글

parse_url()  (0) 2025.05.14
http_build_query()  (0) 2024.06.21
URL Encode  (0) 2024.06.21

댓글