Похоже, curl_setopt_array
отличается от нескольких вызовов curl_setopt
. Рассмотрим этот сценарий:
$ch = curl_init('http://www.stackoverflow.com/');
[options]
curl_exec($ch);
var_dump(curl_getinfo($ch));
Теперь он отправляет правильный запрос, если [options]
является одним из них:
curl_setopt_array($ch, array(
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => array('a' => 'b'),
));
или
curl_setopt_array($ch, array(
CURLOPT_POSTFIELDS => array('a' => 'b'),
));
или
curl_setopt($ch, CURLOPT_POSTFIELDS, 'a=b');
curl_setopt($ch, CURLOPT_POST, 1);
НО НЕ так:
curl_setopt_array($ch, array(
CURLOPT_POSTFIELDS => array('a' => 'b'),
CURLOPT_POST => true,
));
Кажется, что длина содержимого сбрасывается, если CURLOPT_POST
установлено после CURLOPT_POSTFIELDS
. За исключением того, что это работает нормально, если установлено с curl_setopt
вместо curl_setopt_array
.
Почему это?