Use http_build_query () com CURLOPT_POSTFIELDS em PHP

Quando você usa uma matriz ao definir a opção cURL HTTPPOSTFIELDS, isso mudará o tipo de conteúdo da solicitação para dados de formulário com várias partes, o que pode estragar as coisas. Você pode usar uma string codificada por url, como:

'something=' . rawurlencode('value') . '&foor=' . rawurlencode('bar')

mas, em vez disso, considere usar a função interna do PHP http build query (). Isso pegará uma matriz (que é mais limpa) e construirá uma string semelhante ao exemplo anterior para você, incluindo escape de URL quando necessário e usando & e & corretamente.

Isso permitirá que você faça algo assim:

$field = array('something' => 'value', 'foo' => 'bar');
curl_setopt
($ch, CURLOPT_POSTFIELDS, $fields)

Isso é especialmente importante ao usar APIs com autenticação como OAuth, onde você precisa gerar assinaturas.