PHP curl: CURLOPT_URL, CURLOPT_POST, et CURLOPT_POSTFIELDS

Si j'ai une URL qui ressemble à ceci:

$url = 'http://domain.com/?foo=bar';

Et ensuite exécuter curl comme suit:

$resource = curl_init();
curl_setopt($resource, CURLOPT_URL, $url);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($resource);
curl_close($resource);

Je comprends que je fais cette demande via GET (par défaut).

Maintenant si j'ai mis l'option suivante dans le même scénario:

curl_setopt($resource, CURLOPT_POST, 1);

Je comprends qu'il utilise POST au lieu de GET, mais est-il alors de POST foo avec une valeur de bar? Ou serait la bonne façon pour que:

$url = 'http://domain.com/';
$post = 'foo=bar';
$resource = curl_init();
curl_setopt($resource, CURLOPT_URL, $url);
curl_setopt($resource, CURLOPT_POST, 1);
curl_setopt($resource, CURLOPT_POSTFIELDS, $post);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($resource);
curl_close($resource);

Et ce qui se passe si je fais cela (c'est à dire soumettre la valeur dans l'URL et via CURLOPT_POSTFIELDS):

$url = 'http://domain.com/?foo=bar';
$post = 'foo=bar';
$resource = curl_init();
curl_setopt($resource, CURLOPT_URL, $url);
curl_setopt($resource, CURLOPT_POST, 1);
curl_setopt($resource, CURLOPT_POSTFIELDS, $post);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($resource);
curl_close($resource);

Comment les données seront présentées dans ce scénario?

OriginalL'auteur NightHawk | 2012-06-06