2013-12-12 37 views
0

有沒有辦法檢索curl資源上設置的POST字段?PHP curl - 在實例化的curl資源上獲取POST字段?

例如

curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

有沒有辦法從$ch$payload

我見過curl_getinfohttp://www.php.net/manual/en/function.curl-getinfo.php但它似乎沒有返回這樣的數據。

+0

你需要在同一個腳本上做到這一點?或者,實際上,您發送數據的遠程腳本? – Nevertheless

+0

相同的腳本... curl資源是一個類屬性,並且有幾個方法可以在其上設置數據/選項。我希望在發送請求之前從中檢索所有選項和POST數據,以便在啓用調試時將其註銷。 – ashgromnies

回答

0

我可能會認爲沒有簡單的方法來做到這一點。如果你需要這些數據進行調試,我寧願建議在你的類數組工作,將它像:

$options = array( 
    //other cURL properties... 
    CURLOPT_POST   => 1, 
    CURLOPT_POSTFIELDS  => $curl_data, 
    //other cURL properties... 
); 

,然後就curl_exec($ch)之前與curl_setopt_array($ch, $options)結合捲曲描述。

0

即使使用curl_getinfo,在發出請求之前,您將無法提取POST數據。

根據你的評論,這聽起來像你的代碼是做curl_setopt調用,但你有幾個地方這樣做?

怎麼樣瘦包裝設置POST變量

class SomeClient { 
    private $post_vars = array(); 
    private $ch; 

    private function _curl_setpostvar(array $post_vars) { 
    $this->post_vars = array_merge($this->post_vars, $post_vars); 
    curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post_vars); 
    } 
} 

現在你的另一實例方法來代替代替_curl_setpostvarcurl_setopt時設置POST上的手柄瓦爾。

即使在請求發送之前,POST變量也將通過$this->post_vars提供。