쿼리 문자열을 배열로 구문 분석

아래 문자열배열로 변환하려면 어떻게 해야 합니까?

pg_id=2&parent_id=2&document&video

이게 제가 찾고 있는 어레이입니다.

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


질문에 대한 답변



함수를 사용하려면 두 번째 매개 변수를 설정하여 개별 변수가 아닌 배열에 데이터를 넣어야 합니다.

$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 ); 



사용.

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



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

& 

그럼 꼭 사용하세요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' => ) 



http://us1.php.net/parse_str 를 사용합니다.

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

parse_str($str, &$array); 

것은 아니다.

$array = parse_str($str); 

의 내용은 PHP 버전 5.3 이전에만 적용됩니다.PHP 5.4에서는 참조에 의한 콜 시간이 삭제되었습니다.