WP_HTTP: Curl: When using Stream-to-file on servers using mbstring.func_overload ensure that the file is written out correctly. Props DrProtocols. See #25061 for trunk
Built from https://develop.svn.wordpress.org/trunk@25051 git-svn-id: http://core.svn.wordpress.org/trunk@25038 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
8ad024f30a
commit
e91dcf8fac
|
@ -1394,6 +1394,11 @@ class WP_Http_Curl {
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
private function stream_body( $handle, $data ) {
|
private function stream_body( $handle, $data ) {
|
||||||
|
if ( function_exists( 'ini_get' ) && ( ini_get( 'mbstring.func_overload' ) & 2 ) && function_exists( 'mb_internal_encoding' ) ) {
|
||||||
|
$mb_encoding = mb_internal_encoding();
|
||||||
|
mb_internal_encoding( 'ISO-8859-1' );
|
||||||
|
}
|
||||||
|
|
||||||
if ( $this->max_body_length && ( strlen( $this->body ) + strlen( $data ) ) > $this->max_body_length )
|
if ( $this->max_body_length && ( strlen( $this->body ) + strlen( $data ) ) > $this->max_body_length )
|
||||||
$data = substr( $data, 0, ( $this->max_body_length - strlen( $this->body ) ) );
|
$data = substr( $data, 0, ( $this->max_body_length - strlen( $this->body ) ) );
|
||||||
|
|
||||||
|
@ -1402,7 +1407,12 @@ class WP_Http_Curl {
|
||||||
else
|
else
|
||||||
$this->body .= $data;
|
$this->body .= $data;
|
||||||
|
|
||||||
return strlen( $data );
|
$data_length = strlen( $data );
|
||||||
|
|
||||||
|
if ( isset( $mb_encoding ) )
|
||||||
|
mb_internal_encoding( $mb_encoding );
|
||||||
|
|
||||||
|
return $data_length;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue