mirror of
https://github.com/processwire/processwire.git
synced 2025-08-26 08:04:38 +02:00
Update WireHttp to allow for custom "setopt" options when using CURL
This commit is contained in:
@@ -588,9 +588,13 @@ class WireHttp extends Wire {
|
|||||||
$timeout = isset($options['timeout']) ? (float) $options['timeout'] : $this->getTimeout();
|
$timeout = isset($options['timeout']) ? (float) $options['timeout'] : $this->getTimeout();
|
||||||
$proxy = '';
|
$proxy = '';
|
||||||
|
|
||||||
if(!empty($options['proxy'])) $proxy = $options['proxy'];
|
if(!empty($options['proxy'])) {
|
||||||
else if(isset($options['curl']) && !empty($options['curl']['http']['proxy'])) $proxy = $options['curl']['http']['proxy'];
|
$proxy = $options['proxy'];
|
||||||
else if(isset($options['http']) && !empty($options['http']['proxy'])) $proxy = $options['http']['proxy'];
|
} else if(isset($options['curl']) && !empty($options['curl']['http']['proxy'])) {
|
||||||
|
$proxy = $options['curl']['http']['proxy'];
|
||||||
|
} else if(isset($options['http']) && !empty($options['http']['proxy'])) {
|
||||||
|
$proxy = $options['http']['proxy'];
|
||||||
|
}
|
||||||
|
|
||||||
$curl = curl_init();
|
$curl = curl_init();
|
||||||
|
|
||||||
@@ -662,6 +666,21 @@ class WireHttp extends Wire {
|
|||||||
});
|
});
|
||||||
|
|
||||||
curl_setopt($curl, CURLOPT_URL, $url);
|
curl_setopt($curl, CURLOPT_URL, $url);
|
||||||
|
|
||||||
|
// custom CURL options provided in $options array
|
||||||
|
if(!empty($options['curl']) && !empty($options['curl']['setopt'])) {
|
||||||
|
$setopts = $options['curl']['setopt'];
|
||||||
|
} else if(!empty($options['curl_setopt'])) {
|
||||||
|
$setopts = $options['curl_setopt'];
|
||||||
|
} else {
|
||||||
|
$setopts = null;
|
||||||
|
}
|
||||||
|
if(is_array($setopts)) {
|
||||||
|
foreach($setopts as $opt => $optVal) {
|
||||||
|
curl_setopt($curl, $opt, $optVal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$result = curl_exec($curl);
|
$result = curl_exec($curl);
|
||||||
|
|
||||||
if($result === false) {
|
if($result === false) {
|
||||||
|
@@ -393,7 +393,7 @@ class WireInput extends Wire {
|
|||||||
*
|
*
|
||||||
* - If given a wildcard string, it will return the first matching URL segment. For example,
|
* - If given a wildcard string, it will return the first matching URL segment. For example,
|
||||||
* the wildcard string `foo-*` would match the first URL segment to begin with “foo-”,
|
* the wildcard string `foo-*` would match the first URL segment to begin with “foo-”,
|
||||||
* so any of these segments would match & be returned: `foo-bar`, `foo-12345`, foo-baz123`.
|
* so any of these segments would match & be returned: `foo-bar`, `foo-12345`, `foo-baz123`.
|
||||||
* A wildcard string of `*bar` would match anything ending with “bar”, i.e. it would match
|
* A wildcard string of `*bar` would match anything ending with “bar”, i.e. it would match
|
||||||
* and return `foo-bar`, `foobar`, `baz_123bar`, etc.
|
* and return `foo-bar`, `foobar`, `baz_123bar`, etc.
|
||||||
*
|
*
|
||||||
@@ -410,7 +410,7 @@ class WireInput extends Wire {
|
|||||||
* - If you want to focus any of the above options upon a URL segment at a specific index,
|
* - If you want to focus any of the above options upon a URL segment at a specific index,
|
||||||
* then you can append the index number to the method name. For example, if you want it to
|
* then you can append the index number to the method name. For example, if you want it to
|
||||||
* just focus on URL segment #1, then call `$input->urlSegment1(…)`, or for URL segment #2
|
* just focus on URL segment #1, then call `$input->urlSegment1(…)`, or for URL segment #2
|
||||||
* yoyu would call `$input-urlSegment2(…)`, and so on.
|
* you would call `$input->urlSegment2(…)`, and so on.
|
||||||
*
|
*
|
||||||
* Please also note the following about URL segments:
|
* Please also note the following about URL segments:
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user