CURL을 통해 양식에서 데이터를 제출하려고 하면 "배열을 문자열로 변환하는 오류"가 발생할 수 있습니다. 이는 다른 서버에서 실행되는 PHP 스크립트에 다차원 배열을 게시할 때 발생합니다. CURLOPT_POSTFIELDS에는 배열이 필요하므로 사용자는 http_build_query()와 같은 기존 방법을 활용할 수 없습니다.
이 문제를 해결하려면 "http_build_query_for_curl"이라는 사용자 지정 함수가 필요합니다. 다차원 배열을 순회하여 CURL에 적합한 형식으로 변환하는 함수입니다.
<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; } } }</code>
이 함수를 활용하려면 다차원 배열을 변수에 할당하고 첫 번째로 전달합니다. 함수에 대한 인수입니다. 두 번째 인수는 변환된 데이터를 보유할 빈 배열입니다. 세 번째 인수는 선택 사항이며 배열 키의 접두사를 지정합니다.
<code class="php">$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 )
이제 변환된 배열을 CURLOPT_POSTFIELDS와 함께 사용할 수 있습니다. 변환 오류가 발생했습니다.
위 내용은 PHP 및 CURL을 통해 다차원 배열을 게시할 때 \'배열을 문자열로 변환하는 오류\'를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!