[php] 쿼리 문자열을 배열로 구문 분석

아래 문자열을 배열 로 바꾸려면 어떻게 해야합니까?

pg_id=2&parent_id=2&document&video 

이것은 내가 찾고있는 배열입니다.

array(
    'pg_id' => 2,
    'parent_id' => 2,
    'document' => ,
    'video' =>
)



답변

parse_str함수를 원하고 개별 변수 대신 배열에 데이터를 넣도록 두 번째 매개 변수를 설정해야합니다.

$get_string = "pg_id=2&parent_id=2&document&video";

parse_str($get_string, $get_array);

print_r($get_array);


답변

때로는 parse_str()혼자 정확한 메모가 표시됩니다.

$url = "somepage?id=123&lang=gr&size=300";

parse_str ()은 다음을 반환합니다.

Array (
    [somepage?id] => 123
    [lang] => gr
    [size] => 300
)

다음 parse_str()parse_url()같이 결합 하는 것이 좋습니다 .

$url = "somepage?id=123&lang=gr&size=300";
parse_str( parse_url( $url, PHP_URL_QUERY), $array );
print_r( $array );


답변

사용 parse_str().

$str = 'pg_id=2&parent_id=2&document&video';
parse_str($str, $arr);
print_r($arr);


답변

http://us1.php.net/parse_str 사용

주의 사용법은 다음과 같습니다.

parse_str($str, &$array);

아니

$array = parse_str($str);


답변

인코딩 된 앰퍼샌드로 인해 쿼리 문자열을 배열로 변환하는 데 문제가있는 경우

&

그런 다음 사용하십시오 html_entity_decode

예:

// Input string //
$input = 'pg_id=2&parent_id=2&document&video';

// Parse //
parse_str(html_entity_decode($input), $out);

// Output of $out //
array(
  'pg_id' => 2,
  'parent_id' => 2,
  'document' => ,
  'video' =>
)


답변

몇 가지 가능한 방법이 있지만 이미 내장 parse_str함수가 있습니다.

$array = array();
parse_str($string, $array);
var_dump($array);


답변

이것은 현재 URL에서 배열로 쿼리를 파싱하기위한 하나의 라이너입니다.

parse_str($_SERVER['QUERY_STRING'], $query);