Lors de la publication de données de formulaire contenant des tableaux multidimensionnels à l'aide de CURL, rencontrer une erreur « Conversion de tableau en chaîne » est un problème courant. Cela se produit lorsque vous tentez de définir CURLOPT_POSTFIELDS avec un tableau qui inclut des tableaux.
Étant donné que l'en-tête Content-Type doit être multipart/form-data pour faciliter le transfert de fichiers, convertir le tableau en chaîne de requête ou utiliser http_build_query() n'est pas réalisable. De plus, accéder au code de l'hôte récepteur pour sérialiser et désérialiser le tableau n'est pas une option.
Pour résoudre ce problème, une fonction personnalisée nommée http_build_query_for_curl peut être utilisée. Il parcourt de manière récursive le tableau, le convertissant dans un format adapté aux requêtes CURL POST. Le tableau modifié peut ensuite être attribué à $post et transmis à curl_setopt(), évitant ainsi l'erreur.
Voici le code de la fonction http_build_query_for_curl et un exemple de son utilisation :
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);
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3