이 기사의 예에서는 PHP가 http_build_query()를 사용하여 URL 문자열을 구성하는 방법을 설명합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
간단히 말하면 http_build_query()는 URL 물음표? 뒤에 배열을 매개변수 문자열로 변환하고 자동으로 urlencode 처리를 수행합니다.
공식 설명을 인용해 보겠습니다.
http_build_query
http_build_query - URL로 인코딩된 http_build_query(배열 형식 데이터 [, 문자열 숫자_접두어]) 이후에 요청 문자열 설명 문자열을 생성합니다
주어진 연관(또는 아래 첨자) 배열을 사용하여 URL로 인코딩된 요청 문자열을 생성합니다. 매개변수 formdata는 배열이거나 속성을 포함하는 객체일 수 있습니다. formdata 배열은 단순한 1차원 구조이거나 배열의 배열(다른 배열을 포함할 수 있음)일 수 있습니다. 기본 배열에 숫자 첨자가 사용되고 숫자_prefix 매개변수가 제공되면 이 매개변수 값은 기본 배열의 숫자 첨자 요소에 대한 접두어로 사용됩니다. 이는 나중에 데이터를 디코딩할 때 PHP 또는 기타 CGI 프로그램이 유효한 변수 이름을 얻을 수 있도록 하기 위한 것입니다.
몇 가지 간단한 예를 살펴보겠습니다.
$data = array( 'foo'=>'bar', 'baz'=>'boom', 'site'=>'www.nowamagic.net', 'name'=>'nowa magic'); echo http_build_query($data); /* output foo=bar&baz=boom&cow=milk&php=hypertext+processor */
인덱스 배열과 연관 배열이 혼합된 배열이면 어떻게 되나요?
$data = array( 'foo', 'bar', 'site'=>'www.nowamagic.net', 'name'=>'nowa magic'); echo http_build_query($data); /* output 0=foo&1=bar&site=www.nowamagic.net&name=nowa+magic */
숫자 인덱스를 자동으로 추가합니다.
http_build_query에는 숫자 인덱스 앞에 붙을 수 있는 매개변수도 있습니다. 다시 시도해 보겠습니다.
$data = array( 'foo', 'bar', 'site'=>'www.nowamagic.net', 'name'=>'nowa magic'); echo http_build_query($data, "nm_"); /* output nm_0=foo&nm_1=bar&site=www.nowamagic.net&name=nowa+magic */
더 복잡한 배열은 어떻습니까? 예를 들어 2차원 배열 등이 있습니다.
$data = array( 'user'=>array('name'=>'Bob Smith', 'age'=>47, 'sex'=>'M', 'dob'=>'5/12/1956'), 'pastimes'=>array('golf', 'opera', 'poker', 'rap'), 'children'=>array('bobby'=>array('age'=>12,'sex'=>'M'), 'sally'=>array('age'=>8,'sex'=>'F')), 'CEO');
출력 결과는 다음과 같습니다.
user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&user%5Bdob%5D=5%2F12%2F1956 &pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&pastimes%5B2%5D=poker &pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&children%5Bbobby%5D%5Bsex%5D=M &children%5Bsally%5D%5Bage%5D=8&children%5Bsally%5D%5Bsex%5D=F&0=CEO
가독성을 위해 래핑됨:
user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956& pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap& children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8& children[sally][sex]=F&flags_0=CEO
참고: 기본 배열의 숫자 아래 첨자 요소인 "CEO"만 접두어를 얻습니다. 다른 숫자 아래 첨자 요소(예: 취미 아래의 요소)에는 유효한 변수 이름에 접두어를 붙일 필요가 없습니다.
배열뿐만 아니라 객체도 URL 문자열로 변환할 수 있습니다.
class myClass { var $foo; var $baz; function myClass() { $this->foo = 'bar'; $this->baz = 'boom'; } } $data = new myClass(); echo http_build_query($data);
마지막으로 http_build_query를 검색할 때 알아야 할 몇 가지 기능을 더 언급하겠습니다.
1.parse_str: URL 뒤에 오는 매개변수를 배열로 변환합니다.
2.parse_url: 전체 URL을 배열로 구문 분석합니다. pars_url(문자열 URL).
3. http_build_query: 간단히 설명하자면, 배열을 url로 변환할까요? 다음 매개변수 문자열은 urlencode에 의해 자동으로 처리됩니다. 문자열 http_build_query(array formdata [, 문자열 숫자_접두사]), 다음 매개변수 문자열은 배열 키 또는 키에는 숫자가 붙습니다.
더 많은 PHP 관련 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제를 확인할 수 있습니다. "PHP 작업 및 연산자 사용법 요약", "PHP 네트워크 프로그래밍 기술 요약", " PHP 기본 구문 입문 튜토리얼", "PHP 오피스 문서 조작 스킬 요약(워드, 엑셀, 액세스, ppt 포함)", "요약 PHP 날짜 및 시간 사용법》, "php 객체 지향 프로그래밍 입문 튜토리얼", "php 문자열(문자열) 사용법 요약", "php mysql 데이터베이스 운영 입문 튜토리얼" 그리고 "PHP의 일반적인 데이터베이스 운영 기술 요약"
이 기사가 PHP 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.