배열에서 매개 변수를 사용하여 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, '', '&' );
?>
그리고 다음 행을 출력합니다.
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&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
'programing' 카테고리의 다른 글
폼 없이 vuej 및 larabel을 사용하여 파일 업로드 (0) | 2022.09.27 |
---|---|
간단한 Getter/Setter 코멘트 (0) | 2022.09.27 |
JS에서 오류 유형 확인 (0) | 2022.09.20 |
클래스 JavaLaunchHelper는 양쪽에서 구현됩니다.둘 중 하나가 사용됩니다.정의되지 않은 것 (0) | 2022.09.20 |
도커 이미지의 mariadb에서 InnoDB 오류 발생 (0) | 2022.09.20 |