36 'timeout' => CURLOPT_TIMEOUT,
37 'maxredirects' => CURLOPT_MAXREDIRS,
38 'proxy' => CURLOPT_PROXY,
39 'ssl_cert' => CURLOPT_SSLCERT,
40 'userpwd' => CURLOPT_USERPWD,
69 if (empty($this->config)) {
72 foreach (array_keys($this->config) as $param) {
73 if (array_key_exists($param, $this->allowedParams)) {
74 curl_setopt($this->
getResource(), $this->allowedParams[$param], $this->config[$param]);
132 CURLOPT_RETURNTRANSFER =>
true,
133 CURLOPT_FOLLOWLOCATION =>
true,
134 CURLOPT_COOKIEFILE =>
'',
135 CURLOPT_HTTPHEADER => $headers,
136 CURLOPT_SSL_VERIFYPEER =>
false,
137 CURLOPT_SSL_VERIFYHOST =>
false,
142 $options[CURLOPT_POSTFIELDS] = $body;
146 $options[CURLOPT_POSTFIELDS] = $body;
169 public function read($successRegex =
null, $returnRegex =
null)
176 $http_code = $this->
getInfo(CURLINFO_HTTP_CODE);
177 if (!in_array($http_code, self::SUCCESSFUL_HTTP_CODES)) {
192 $this->resource =
null;
202 if ($this->resource ===
null) {
203 $this->resource = curl_init();
251 $multiHandle = curl_multi_init();
254 $handles[$key] = curl_init();
255 curl_setopt($handles[$key], CURLOPT_URL,
$url);
256 curl_setopt($handles[$key], CURLOPT_HEADER, 0);
257 curl_setopt($handles[$key], CURLOPT_RETURNTRANSFER, 1);
259 curl_setopt_array($handles[$key],
$options);
261 curl_multi_add_handle($multiHandle, $handles[$key]);
265 curl_multi_exec($multiHandle, $process);
267 }
while ($process > 0);
269 foreach ($handles as $key =>
$handle) {
271 curl_multi_remove_handle($multiHandle,
$handle);
273 curl_multi_close($multiHandle);
285 preg_match(
"|^HTTP/[\d\.x]+ (\d+)|", $responseStr, $m);
multiRequest(array $urls, array $options=[])
setConfig(array $config=[])
setOptions(array $options=[])
addOption($option, $value)
read($successRegex=null, $returnRegex=null)
write($url, $body=[], $method=CurlInterface::POST, $headers=[])
const SUCCESSFUL_HTTP_CODES
static extractCode($responseStr)