看起來像curl_setopt_array
不同於多個調用curl_setopt
。考慮一下這個腳本:如果使用curl_setopt_array設置CURLOPT_POST,PHP curl會重置content-length?
$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);
BUT不是這樣:
curl_setopt_array($ch, array(
CURLOPT_POSTFIELDS => array('a' => 'b'),
CURLOPT_POST => true,
));
看來,如果CURLOPT_POST
是CURLOPT_POSTFIELDS
後設置的內容長度復位。除非設置爲curl_setopt
而不是curl_setopt_array
,否則不起作用。
這是爲什麼?
優秀的工作跟蹤下來。現在,我可以停止將我的頭撞到牆上,並通過Facebook的API上傳照片。 – grossvogel