Set multiple options for a cURL transfer (original) (raw)
curl_setopt_array
(PHP 5 >= 5.1.3, PHP 7)
curl_setopt_array — Set multiple options for a cURL transfer
Description
curl_setopt_array ( resource $ch
, array $options
) : bool
Parameters
ch
A cURL handle returned bycurl_init().
options
An array specifying which options to set and their values. The keys should be valid curl_setopt() constants or their integer equivalents.
Return Values
Returns TRUE
if all options were successfully set. If an option could not be successfully set, FALSE
is immediately returned, ignoring any future options in the options
array.
Examples
Example #1 Initializing a new cURL session and fetching a web page
<?php // create a new cURL resource $ch = curl_init();// set URL and other appropriate options $options = array(CURLOPT_URL => 'http://www.example.com/', CURLOPT_HEADER => false );curl_setopt_array($ch, $options);// grab URL and pass it to the browser curl_exec($ch);// close cURL resource, and free up system resources curl_close($ch); ?>
Prior to PHP 5.1.3 this function can be simulated with:
Example #2 Our own implementation of curl_setopt_array()
<?php if (!function_exists('curl_setopt_array')) { function curl_setopt_array(&$ch, $curl_options) { foreach ($curl_options as <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>o</mi><mi>p</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo>=</mo><mo>></mo></mrow><annotation encoding="application/x-tex">option => </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.854em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">o</span><span class="mord mathnormal">pt</span><span class="mord mathnormal">i</span><span class="mord mathnormal">o</span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=></span></span></span></span>value) { if (!curl_setopt($ch, <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>o</mi><mi>p</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo separator="true">,</mo></mrow><annotation encoding="application/x-tex">option, </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.854em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">o</span><span class="mord mathnormal">pt</span><span class="mord mathnormal">i</span><span class="mord mathnormal">o</span><span class="mord mathnormal">n</span><span class="mpunct">,</span></span></span></span>value)) { return false; } } return true; } } ?>
Notes
Note:
As with curl_setopt(), passing an array to
CURLOPT_POST
will encode the data as multipart/form-data, while passing a URL-encoded string will encode the data as application/x-www-form-urlencoded.