programing

배열에서 매개 변수를 사용하여 URL 생성

kingscode 2022. 9. 20. 23:23
반응형

배열에서 매개 변수를 사용하여 URL 생성

다음과 같은 어레이를 사용해야 합니다.

$subids = Array
    (
        [s1] => one
        [s2] => two
        [s3] => three
        [s4] => four
        [s5] => five
        [s6] => six
    )

http://example.com?s1=one&s2=two&s3=three=&s4=four&s5=five&s6=six 등의 URL을 생성합니다.

모든 서브ID가 항상 정의되어 있는 것은 아니기 때문에 s3가 정의되어 있지 않을 수 있습니다.또, 첫 번째 서브ID가 무엇이든, 앰퍼샌드(&) 대신에?를 앞에 붙여야 합니다.

어레이가 다음과 같은 경우:

$subids = Array
    (
        [s2] => two
        [s6] => six
    )

URL은 http://example.com?s2=two&s6=six이어야 합니다.

지금까지의 내용은 다음과 같습니다.

$url = 'http://example.com'

    foreach ($subids AS $key => $value) {
        $result[$id]['url'] .= '&' . $key . '=' . $value;
    }

단, 첫 번째 키/값 쌍의 선두에 ?를 추가하는 것이 가장 좋은 방법인지 잘 모르겠습니다.

PHP 기능이 있는 것 같습니다만, 별로 찾을 수 없습니다.CI에서 제공하는 것이 있으면 Codeigniter를 사용하고 있습니다.

필요한 것은 http_build_query 뿐입니다.

$final = $url . "?" . http_build_query($subids);

와 함께 사용할 수 있습니다.http_build_query()기능.php.net의 예:

<?php
$data = array(
    'foo' => 'bar',
    'baz' => 'boom',
    'cow' => 'milk',
    'php' => 'hypertext processor',
);

echo http_build_query( $data ) . "\n";
echo http_build_query( $data, '', '&amp;' );
?>

그리고 다음 행을 출력합니다.

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

다음 소스에서 읽을 수 있습니다.http://www.php.net/manual/en/function.http-build-query.php

그나저나 WordPress와 함께 사용하면 다음 기능을 사용할 수 있습니다.http://codex.wordpress.org/Function_Reference/add_query_arg

즐겁게 보내세요.:)

http_build_query() 함수를 사용할 수 있지만 URL이 외부 함수에서 온 경우 몇 가지 검증을 수행해야 합니다.

$url = getUrlSomewhere();
$params = ['param' => 'value', 'param2' => 'value2'];
$queryParams = http_build_query($params);
if (strpos($url, '?') !== FALSE) {
    $url .= '&'. $queryParams;
} else {
    $url .= '?'. $queryParams;
}

PECL 확장이 있는 경우 기존 URL에 파라미터를 추가하거나 기존 URL에 파라미터를 추가하지 않을 경우 이미 고려되는http_build_url()을 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/13276226/generate-url-with-parameters-from-an-array

반응형