2014-07-07 3 views
2

는 HTTP 요청이 다음과 같은 포맷 말 :동작은

GET /path/to/file.php?var[]=1&var[]=2 

PHP는 $_GET라는 이름의 배열로 그 웁니다 : array('var' => array(1, 2))

내 질문입니다. .. 이것은 PHP의 것입니까, 아니면 RFC에 의해 관리되는이 동작입니까? 웹에서 액세스 할 수있는 node.js 또는 Python 스크립트는 어떻게 처리할까요?

+1

언어별로 다릅니다. – GordonM

+1

필자는'? foo.bar = baz'가'$ _GET [ 'foo_bar'] = 'baz';'로 변환되는 것을 기초로하여 PHP라는 것을 추측 할 것입니다. 다른 서버 측 언어도 유사한 기능을 제공 할 수 있습니다. –

+0

@Niet the Dark Absol - 흥미 롭습니다. 나는 그것을 몰랐다! – neubert

답변

2

PHP가 이전 값을 덮어 쓰게됩니다, 당신은 마지막 키와 끝까지 : 쿼리 문자열에서 값 쌍을 찾았습니다. 그러나 PHP에서 당신이 [] 배열을 사용할 수있는 필드 이름은 해킹과 같이

$_GET = array(
    'foo' => 'qux' 
); 

라인 # 2 생산 :

  1. example.com?foo=bar&foo=baz&foo=qux
  2. example.com?foo[]=bar&foo[]=baz&foo[]=qux

라인 # 1이이 같은 $ _GET을 생산

$_GET['array'] = array 
    'foo' => array('bar', 'baz', 'qux'); 
} 

이 동작은 PHP와 관련이 있습니다. 다른 언어들은 그들 자신의 일을합니다. 지금까지 내가 기억하는 한, Perl은 기본적으로 모든 값을 배열로 유지합니다.