>  기사  >  백엔드 개발  >  PHP와 CURL을 통해 다차원 배열을 게시하는 방법은 무엇입니까?

PHP와 CURL을 통해 다차원 배열을 게시하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-23 08:16:02426검색

How to Post Multidimensional Arrays via PHP and CURL?

PHP 및 CURL을 사용하여 다차원 배열 게시

문제:

CURL을 통해 다차원 형식 배열을 PHP 스크립트에 게시 다른 호스트에서는 "배열을 문자열로 변환" 오류가 발생합니다. 컬_setopt()의 세 번째 인수는 파일 업로드로 인해 Content-Type 헤더를 multipart/form-data로 설정하기 위한 배열이어야 합니다. 그러나 CURLOPT_POSTFIELDS는 다차원 배열을 지원하지 않는 것 같습니다.

해결 방법:

CURLOPT_POSTFIELDS의 제한에도 불구하고 http_build_query_for_curl() 함수를 사용하는 해결 방법이 있습니다. 이 함수는 다차원 배열을 cur_setopt()에 적합한 평면 배열로 재귀적으로 변환합니다.

예제 코드:

<code class="php">function http_build_query_for_curl( $arrays, &amp;$new = array(), $prefix = null ) {

    if ( is_object( $arrays ) ) {
        $arrays = get_object_vars( $arrays );
    }

    foreach ( $arrays AS $key => $value ) {
        $k = isset( $prefix ) ? $prefix . '[' . $key . ']' : $key;
        if ( is_array( $value ) OR is_object( $value )  ) {
            http_build_query_for_curl( $value, $new, $k );
        } else {
            $new[$k] = $value;
        }
    }
}

$arrays = array(
    'name' => array(
        'first' => array(
            'Natali', 'Yura'
        )
    )
);


http_build_query_for_curl( $arrays, $post );

print_r($post);</code>

출력:

Array
(
    [name[first][0]] => Natali
    [name[first][1]] => Yura
)

이 평면 배열은 세 번째 인수로 컬_setopt()에 전달되어 CURL을 통해 다차원 배열을 성공적으로 게시할 수 있습니다.

위 내용은 PHP와 CURL을 통해 다차원 배열을 게시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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