문제:
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, &$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!