>  기사  >  백엔드 개발  >  PHP에서 배열을 URL로 변환하는 방법

PHP에서 배열을 URL로 변환하는 방법

PHPz
PHPz원래의
2023-04-18 14:07:09681검색

인터넷의 지속적인 발전으로 인해 우리는 데이터를 전송하고 교환하기 위해 네트워크에 점점 더 의존하고 있습니다. 웹을 검색하든, 전자 상거래를 하든, 온라인 결제를 하든 우리 모두는 URL을 사용하여 필요한 정보를 전송하고 획득해야 합니다.

PHP에서는 URL 매개변수를 통해 전달하고 처리하기 위해 배열을 URL로 변환해야 하는 경우가 많습니다. 이 글에서는 PHP 배열을 URL로 변환하는 방법을 설명하고 참고할 수 있는 실제 예제 코드를 제공합니다.

변환 방법

PHP에서는 http_build_query() 함수를 사용하여 배열을 URL 형식으로 변환할 수 있습니다. http_build_query() 함수는 배열을 URL 인코딩으로 변환하여 모든 매개변수 키-값 쌍을 포함하는 문자열을 생성합니다. 다음은 http_build_query() 함수의 구문입니다.

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

이 함수에는 4개의 매개변수가 있습니다.

  • query_data: URL로 변환할 데이터는 연관 배열일 수 있습니다.
  • numeric_prefix: 선택적 매개변수입니다. 이 매개변수가 true로 설정되면 자동으로 키 이름에 접두사가 추가됩니다. 기본적으로 접두사는 "parameters[]"입니다.
  • arg_separator: 선택적 매개변수, 매개변수 간 구분 기호, 기본값은 "&"입니다.
  • enc_type: 선택적 매개변수, 인코딩 유형, 기본값은 PHP_QUERY_RFC1738입니다. 이 매개변수를 PHP_QUERY_RFC3986으로 설정하면 RFC3986 인코딩 유형이 사용됩니다.

예제 코드

다음은 배열을 URL로 변환하는 코드 예입니다.

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'city' => 'New York',
    'state' => 'NY',
);

$url_parameters = http_build_query($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>

이 예에서는 일부 키-값 쌍이 포함된 연관 배열 $parameters를 정의합니다. 그런 다음 http_build_query() 함수를 사용하여 배열을 URL 인코딩 문자열로 변환하고 이를 $url_parameters 변수에 저장합니다.

마지막으로 URL에 $url_parameters를 추가하고 최종 URL을 생성한 후 echo 함수를 사용하여 화면에 출력합니다.

출력 결과:

http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY

이것은 PHP 배열을 URL로 변환하는 가장 기본적인 방법 중 하나입니다.

확장 앱

이제 PHP 배열을 URL로 변환하는 방법을 살펴보았습니다. 다음으로, 응용 프로그램을 더 잘 이해하는 데 도움이 되는 몇 가지 고급 사용법을 다룰 것입니다.

  1. Prefix

두 번째 매개변수인 Numeric_prefix를 사용하여 매개변수 이름에 접두어를 추가할 수 있습니다. 다음 예에서는 배열의 매개변수 이름 앞에 "data[ ]"를 붙입니다.

<?php
$data = array(
    1 => 'foo',
    2 => 'bar',
    3 => 'faz'
);

$query = http_build_query($data, 'data[]');

echo $query;
?>

출력 결과:

data%5B%5D=foo&data%5B%5D=bar&data%5B%5D=faz
  1. urlencode()

URL의 매개변수를 더 효과적으로 제어하려면 URL을 생성하기 전에 urlencode() 함수를 사용하여 매개변수 값을 인코딩할 수 있습니다. 예:

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'city' => urlencode('New York'),
    'state' => urlencode('NY'),
);

$url_parameters = http_build_query($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>

이 예에서는 urlencode() 함수를 사용하여 "New York" 및 "NY"를 인코딩하여 URL에 불법 문자가 나타나지 않도록 합니다. 최종 URL은 다음과 같습니다.

http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY
  1. Advanced Arrays

배열에 다차원 하위 ​​배열이 포함된 경우 재귀를 사용하여 전체 배열을 URL로 변환할 수 있습니다. 예:

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'address' => array(
        'city' => 'New York',
        'state' => 'NY',
        'zip' => '10001'
    )
);

function build_query_string_recursive(array $array, $prefix = null) {

    $query = array();

    foreach($array as $key => $value) {
        $new_key = is_null($prefix) ? $key : sprintf('%s[%s]', $prefix, $key);

        if(is_array($value)) {
            $query[] = build_query_string_recursive($value, $new_key);
        } else {
            $query[] = sprintf('%s=%s', urlencode($new_key), urlencode($value));
        }
    }

    return implode('&', $query);
}

$url_parameters = build_query_string_recursive($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>

이 예에서는 build_query_string_recursive() 함수를 사용하여 전체 배열을 URL로 변환합니다. 이 함수는 재귀를 사용하여 다차원 배열을 처리하여 모든 키-값 쌍이 URL 인코딩 형식으로 올바르게 변환되도록 합니다.

마지막으로 URL에 $url_parameters를 추가하고 최종 URL을 생성한 후 echo 함수를 사용하여 화면에 출력합니다.

출력:

http://www.example.com/login?username=myusername&password=mypassword&address[city]=New+York&address[state]=NY&address[zip]=10001

결론

PHP 배열을 URL로 변환하는 것은 데이터를 전달하고 처리하는 데 매우 유용한 방법입니다. 이 기사에서는 참조할 수 있는 몇 가지 실제 예제와 함께 http_build_query() 함수를 소개합니다.

단순 배열을 변환해야 하는지, 다차원 배열을 URL로 변환해야 하는지에 관계없이 이 예제는 작업을 성공적으로 완료하는 데 도움이 될 수 있습니다. 읽어주셔서 감사합니다. 이 글이 도움이 되었으면 좋겠습니다!

위 내용은 PHP에서 배열을 URL로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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