Fix for cURL with default HTTP/2
This commit is contained in:
parent
c82c0a9812
commit
60f890ce0d
@ -120,13 +120,8 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
|
|||||||
@curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);
|
@curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(array_key_exists('http_version',$opts)) {
|
if(array_key_exists('http_version',$opts))
|
||||||
@curl_setopt($ch,CURLOPT_HTTP_VERSION,$opts['http_version']);
|
@curl_setopt($ch,CURLOPT_HTTP_VERSION,$opts['http_version']);
|
||||||
}
|
|
||||||
else {
|
|
||||||
@curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(x($opts,'cookiejar'))
|
if(x($opts,'cookiejar'))
|
||||||
@curl_setopt($ch, CURLOPT_COOKIEJAR, $opts['cookiejar']);
|
@curl_setopt($ch, CURLOPT_COOKIEJAR, $opts['cookiejar']);
|
||||||
@ -165,7 +160,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
|
|||||||
// Pull out multiple headers, e.g. proxy and continuation headers
|
// Pull out multiple headers, e.g. proxy and continuation headers
|
||||||
// allow for HTTP/2.x without fixing code
|
// allow for HTTP/2.x without fixing code
|
||||||
|
|
||||||
while(preg_match('/^HTTP\/[1-3].+? [1-5][0-9][0-9]/',$base)) {
|
while(preg_match('/^HTTP\/[1-3](\.\d)? [1-5][0-9][0-9]/',$base)) {
|
||||||
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
|
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
|
||||||
$header .= $chunk;
|
$header .= $chunk;
|
||||||
$base = substr($base,strlen($chunk));
|
$base = substr($base,strlen($chunk));
|
||||||
@ -298,12 +293,8 @@ function z_post_url($url, $params, $redirects = 0, $opts = array()) {
|
|||||||
@curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);
|
@curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(array_key_exists('http_version',$opts)) {
|
if(array_key_exists('http_version',$opts))
|
||||||
@curl_setopt($ch,CURLOPT_HTTP_VERSION,$opts['http_version']);
|
@curl_setopt($ch,CURLOPT_HTTP_VERSION,$opts['http_version']);
|
||||||
}
|
|
||||||
else {
|
|
||||||
@curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(x($opts,'cookiejar'))
|
if(x($opts,'cookiejar'))
|
||||||
@curl_setopt($ch, CURLOPT_COOKIEJAR, $opts['cookiejar']);
|
@curl_setopt($ch, CURLOPT_COOKIEJAR, $opts['cookiejar']);
|
||||||
@ -338,7 +329,7 @@ function z_post_url($url, $params, $redirects = 0, $opts = array()) {
|
|||||||
// Pull out multiple headers, e.g. proxy and continuation headers
|
// Pull out multiple headers, e.g. proxy and continuation headers
|
||||||
// allow for HTTP/2.x without fixing code
|
// allow for HTTP/2.x without fixing code
|
||||||
|
|
||||||
while(preg_match('/^HTTP\/[1-3].+? [1-5][0-9][0-9]/',$base)) {
|
while(preg_match('/^HTTP\/[1-3](\.\d)? [1-5][0-9][0-9]/',$base)) {
|
||||||
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
|
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
|
||||||
$header .= $chunk;
|
$header .= $chunk;
|
||||||
$base = substr($base,strlen($chunk));
|
$base = substr($base,strlen($chunk));
|
||||||
|
Reference in New Issue
Block a user