2013-12-12 3 views
0

Есть ли способ получить поля POST, установленные на ресурсе curl?PHP curl - получить поля POST на экземплярном ресурсе curl?

например.

curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

Есть ли способ, чтобы получить $payload от $ch?

Я видел curl_getinfo: http://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 дескриптора с curl_setopt_array($ch, $options) непосредственно перед curl_exec($ch).

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_setpostvar вместо curl_setopt при установке POST вары на ручке.

Карты POST будут доступны через $this->post_vars, даже до отправки запроса.