diff --git a/README.md b/README.md index de8e33e..fac5ed8 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,7 @@ Curl::complete($callback) Curl::delete($url, $query_parameters = [], $data = []) Curl::diagnose($return = false) Curl::disableTimeout() +Curl::displayCurlOptionValue($option, $value) Curl::download($url, $mixed_filename) Curl::error($callback) Curl::exec($ch = null) @@ -233,6 +234,7 @@ Curl::getId() Curl::getInfo($opt = null) Curl::getJsonDecoder() Curl::getOpt($option) +Curl::getOptions() Curl::getRawResponse() Curl::getRawResponseHeaders() Curl::getRemainingRetries() @@ -245,6 +247,7 @@ Curl::getRetries() Curl::getRetryDecider() Curl::getSuccessCallback() Curl::getUrl() +Curl::getUserSetOptions() Curl::getXmlDecoder() Curl::head($url, $data = []) Curl::isChildOfMultiCurl() diff --git a/examples/curl_display_curl_option_value.php b/examples/curl_display_curl_option_value.php new file mode 100644 index 0000000..59e1431 --- /dev/null +++ b/examples/curl_display_curl_option_value.php @@ -0,0 +1,10 @@ +displayCurlOptionValue($option, $value); // "CURLOPT_VERBOSE: true". diff --git a/examples/curl_display_curl_option_values.php b/examples/curl_display_curl_option_values.php new file mode 100644 index 0000000..2f71105 --- /dev/null +++ b/examples/curl_display_curl_option_values.php @@ -0,0 +1,41 @@ +setUserAgent('some agent'); +$curl->setTimeout(60); + +foreach ($curl->getOptions() as $option => $value) { + echo 'option ' . $option . ':' . "\n"; + $curl->displayCurlOptionValue($option, $value); + echo "\n"; +} + +// option 181: +// CURLOPT_PROTOCOLS: 3 (CURLPROTO_HTTP | CURLPROTO_HTTPS) +// +// option 182: +// CURLOPT_REDIR_PROTOCOLS: 3 (CURLPROTO_HTTP | CURLPROTO_HTTPS) +// +// option 10018: +// CURLOPT_USERAGENT: some agent +// +// option 13: +// CURLOPT_TIMEOUT: 60 +// +// option 2: +// CURLINFO_HEADER_OUT: true +// +// option 20056: +// CURLOPT_PROGRESSFUNCTION: (callable) +// +// option 43: +// CURLOPT_NOPROGRESS: false +// +// option 20079: +// CURLOPT_HEADERFUNCTION: (callable) +// +// option 19913: +// CURLOPT_RETURNTRANSFER: true diff --git a/examples/curl_display_curl_option_values_user_set.php b/examples/curl_display_curl_option_values_user_set.php new file mode 100644 index 0000000..37b2ea2 --- /dev/null +++ b/examples/curl_display_curl_option_values_user_set.php @@ -0,0 +1,20 @@ +setUserAgent('some agent'); +$curl->setTimeout(60); + +foreach ($curl->getUserSetOptions() as $option => $value) { + echo 'user set option ' . $option . ':' . "\n"; + $curl->displayCurlOptionValue($option, $value); + echo "\n"; +} + +// user set option 10018: +// CURLOPT_USERAGENT: some agent +// +// user set option 13: +// CURLOPT_TIMEOUT: 60 diff --git a/src/Curl/Curl.php b/src/Curl/Curl.php index f899f5a..6ac0199 100644 --- a/src/Curl/Curl.php +++ b/src/Curl/Curl.php @@ -1554,6 +1554,16 @@ class Curl extends BaseCurl return $this->url; } + public function getOptions() + { + return $this->options; + } + + public function getUserSetOptions() + { + return $this->userSetOptions; + } + public function getRequestHeaders() { return $this->requestHeaders; @@ -1731,7 +1741,7 @@ class Curl extends BaseCurl return $curl_const_by_code; } - private function displayCurlOptionValue($option, $value) + public function displayCurlOptionValue($option, $value) { if (isset($this->curlOptionCodeConstants[$option])) { echo $this->curlOptionCodeConstants[$option] . ':'; diff --git a/tests/PHPCurlClass/PHPMultiCurlClassTest.php b/tests/PHPCurlClass/PHPMultiCurlClassTest.php index 977ff9c..134b47a 100644 --- a/tests/PHPCurlClass/PHPMultiCurlClassTest.php +++ b/tests/PHPCurlClass/PHPMultiCurlClassTest.php @@ -3482,7 +3482,6 @@ class PHPMultiCurlClassTest extends \PHPUnit\Framework\TestCase $curl = new Curl(); $curl->setUrl(Test::TEST_URL); $curl->setOpt(CURLOPT_HTTPHEADER, $header_fields); - $curl->setUserAgent('agent'); $this->assertEquals($header_fields, $curl->getOpt(CURLOPT_HTTPHEADER));