>백엔드 개발 >PHP 문제 >PHP의 get 메소드를 통해 배열을 전달할 수 있습니까?

PHP의 get 메소드를 통해 배열을 전달할 수 있습니까?

青灯夜游
青灯夜游원래의
2023-01-29 19:31:463773검색

그렇습니다. URL은 연관 배열 또는 아래 첨자 배열을 전달할 수 있습니다. PHP에서는 http_build_query() 함수를 사용하여 get 메소드를 통해 URL의 배열을 전달할 수 있습니다. http_build_query()는 "http_build_query($query_data,$numeric_prefix,$arg_separator,$enc_type)" 구문을 사용하여 연결된(또는 인덱싱된) 배열에서 URL 인코딩 쿼리 문자열을 생성하는 데 사용됩니다.

PHP의 get 메소드를 통해 배열을 전달할 수 있습니까?

이 튜토리얼의 운영 환경: windows7 시스템, PHP8 버전, DELL G3 컴퓨터

get 메소드를 사용하여 PHP 아래의 URL에 배열을 전달합니다.

연관 배열 또는 첨자를 전달할 수 있습니다 URL 배열.

가장 간단한 방법은 PHP와 함께 제공되는 http_build_query() 함수를 사용하는 것입니다

$parameters = [
'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'
];

// 这里两种数组的方式能够进行混用定义,没有问题

http_build_query($data);
// 注意这里的结果会将参数中的特殊字符进行转义形成最终的结果查询串

还有就是直接进行参数拼接

? 선언으로 매개변수 전달을 시작하고 &를 사용하여 각 매개변수를 연결합니다? 申明开始传递参数,用&连接各个参数

eg.

https://www.baidu.com?a=1&b=2&c=3

对于如果希望传递数组可以使用以下方式:

https://www.baidu.com?a[0]=0&a[1]=1&a[2]=2&a[3]=3&a[4]=4
https://www.baidu.com?a[q]=0&a[w]=1&a[e]=2&a[r]=3&a[t]=4

eg.

https://www.baidu.com?a=1&b=2&c=3

배열을 전달하려면 다음 방법을 사용하면 됩니다. https://www.baidu.com?a[0]=0&a[1]=1&a[2]=2&a[3]=3&a[4]=4https://www .baidu.com?a[q] =0&a[w]=1&a[e]=2&a[r]=3&a[t]=4

여기서 대괄호를 이스케이프해야 합니다. 그렇지 않으면 전송됩니다. 오류가 발생할 수 있습니다.

확장된 지식: http_build_query() 소개

    http_build_query() 함수는 연관(또는 인덱스) 배열에서 URL 인코딩 쿼리 문자열을 생성하는 데 사용되는 PHP의 내장 함수입니다.
  • 사용법:
    • string http_build_query( $query_data, $numeric_prefix, $arg_separator, $enc_type = PHP_QUERY_RFC1738 )
    • 매개변수: 이 함수는 위와 아래에 언급된 4개의 매개변수를 허용합니다.
  • $query_data:
  • 이 매개변수는 다음 속성을 포함하는 배열 또는 객체를 보유합니다.1차원일 수 있습니다. 배열 또는 다차원 배열.
  • $query_data가 객체인 경우 공용 속성만 결과에 병합됩니다.
  • $numeric_prefix:기본 배열에 숫자 색인이 사용되는 경우 이 매개변수를 사용하세요. 기본 배열에 있는 요소의 숫자 색인 앞에만 표시됩니다.

$arg_separator:인수를 구분하는 데 사용되지만 이 인수를 지정하여 재정의할 수 있습니다.

$enc_type:

기본값은 PHP_QUERY_RFC1738입니다.

반환 값:

URL 인코딩된 문자열을 반환합니다.

다음 예제 프로그램은 PHP의 http_build_query() 함수를 설명하기 위해 설계되었습니다.

프로그램 1:

<?php 
$info = array( 
    'sudo' => 'placement', 
    'CPP' => 'course', 
    'FORK' => 'C', 
); 
  
echo http_build_query($info) . "#"; 
echo http_build_query($info, '', '&'); 
  
?>

출력:

sudo=placement&CPP=course&FORK=C#sudo=placement&CPP=course&FORK=C

프로그램 2: 🎜🎜
<?php 
$info = array('geeks', 'gfg' => 'sudo', 'placement' => 'hypertext processor'); 
  
echo http_build_query($info) . "$"; 
echo http_build_query($info, 'myvar_'); 
?>
🎜출력: 🎜
0=geeks&gfg=sudo&placement=hypertext+processor$myvar_0=geeks&gfg=sudo&placement=hypertext+processor
🎜권장 학습: " 🎜PHP 비디오 튜토리얼🎜》🎜

위 내용은 PHP의 get 메소드를 통해 배열을 전달할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.