1 parent
9737a7c310
commit
358542eef5
1078 files changed
+33799
-65099
No files matched your search
+31
-105
@@ -208,12 +208,9 @@ function wp_remote_head($url, $args = array()) {
|
||||
* Retrieve only the headers from the raw response.
|
||||
*
|
||||
* @since 2.7.0
|
||||
* @since 4.6.0 Return value changed from an array to an Requests_Utility_CaseInsensitiveDictionary instance.
|
||||
*
|
||||
* @see \Requests_Utility_CaseInsensitiveDictionary
|
||||
*
|
||||
* @param array $response HTTP response.
|
||||
* @return array|\Requests_Utility_CaseInsensitiveDictionary The headers of the response. Empty array if incorrect parameter given.
|
||||
* @return array The headers of the response. Empty array if incorrect parameter given.
|
||||
*/
|
||||
function wp_remote_retrieve_headers( $response ) {
|
||||
if ( is_wp_error( $response ) || ! isset( $response['headers'] ) ) {
|
||||
@@ -617,7 +614,7 @@ function ms_allowed_http_request_hosts( $is_external, $host ) {
|
||||
static $queried = array();
|
||||
if ( $is_external )
|
||||
return $is_external;
|
||||
if ( $host === get_network()->domain )
|
||||
if ( $host === get_current_site()->domain )
|
||||
return true;
|
||||
if ( isset( $queried[ $host ] ) )
|
||||
return $queried[ $host ];
|
||||
@@ -626,118 +623,47 @@ function ms_allowed_http_request_hosts( $is_external, $host ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A wrapper for PHP's parse_url() function that handles consistency in the return
|
||||
* values across PHP versions.
|
||||
* A wrapper for PHP's parse_url() function that handles edgecases in < PHP 5.4.7
|
||||
*
|
||||
* PHP 5.4.7 expanded parse_url()'s ability to handle non-absolute url's, including
|
||||
* schemeless and relative url's with :// in the path. This function works around
|
||||
* those limitations providing a standard output on PHP 5.2~5.4+.
|
||||
*
|
||||
* Secondly, across various PHP versions, schemeless URLs starting containing a ":"
|
||||
* in the query are being handled inconsistently. This function works around those
|
||||
* differences as well.
|
||||
* schemeless and relative url's with :// in the path, this works around those
|
||||
* limitations providing a standard output on PHP 5.2~5.4+.
|
||||
*
|
||||
* Error suppression is used as prior to PHP 5.3.3, an E_WARNING would be generated
|
||||
* when URL parsing failed.
|
||||
*
|
||||
* @since 4.4.0
|
||||
* @since 4.7.0 The $component parameter was added for parity with PHP's parse_url().
|
||||
*
|
||||
* @param string $url The URL to parse.
|
||||
* @param int $component The specific component to retrieve. Use one of the PHP
|
||||
* predefined constants to specify which one.
|
||||
* Defaults to -1 (= return all parts as an array).
|
||||
* @see http://php.net/manual/en/function.parse-url.php
|
||||
* @return mixed False on parse failure; Array of URL components on success;
|
||||
* When a specific component has been requested: null if the component
|
||||
* doesn't exist in the given URL; a sting or - in the case of
|
||||
* PHP_URL_PORT - integer when it does. See parse_url()'s return values.
|
||||
* @param string $url The URL to parse.
|
||||
* @return bool|array False on failure; Array of URL components on success;
|
||||
* See parse_url()'s return values.
|
||||
*/
|
||||
function wp_parse_url( $url, $component = -1 ) {
|
||||
$to_unset = array();
|
||||
$url = strval( $url );
|
||||
|
||||
if ( '//' === substr( $url, 0, 2 ) ) {
|
||||
$to_unset[] = 'scheme';
|
||||
$url = 'placeholder:' . $url;
|
||||
} elseif ( '/' === substr( $url, 0, 1 ) ) {
|
||||
$to_unset[] = 'scheme';
|
||||
$to_unset[] = 'host';
|
||||
$url = 'placeholder://placeholder' . $url;
|
||||
}
|
||||
|
||||
function wp_parse_url( $url ) {
|
||||
$parts = @parse_url( $url );
|
||||
|
||||
if ( false === $parts ) {
|
||||
// Parsing failure.
|
||||
return $parts;
|
||||
if ( ! $parts ) {
|
||||
// < PHP 5.4.7 compat, trouble with relative paths including a scheme break in the path
|
||||
if ( '/' == $url[0] && false !== strpos( $url, '://' ) ) {
|
||||
// Since we know it's a relative path, prefix with a scheme/host placeholder and try again
|
||||
if ( ! $parts = @parse_url( 'placeholder://placeholder' . $url ) ) {
|
||||
return $parts;
|
||||
}
|
||||
// Remove the placeholder values
|
||||
unset( $parts['scheme'], $parts['host'] );
|
||||
} else {
|
||||
return $parts;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove the placeholder values.
|
||||
foreach ( $to_unset as $key ) {
|
||||
unset( $parts[ $key ] );
|
||||
// < PHP 5.4.7 compat, doesn't detect schemeless URL's host field
|
||||
if ( '//' == substr( $url, 0, 2 ) && ! isset( $parts['host'] ) ) {
|
||||
$path_parts = explode( '/', substr( $parts['path'], 2 ), 2 );
|
||||
$parts['host'] = $path_parts[0];
|
||||
if ( isset( $path_parts[1] ) ) {
|
||||
$parts['path'] = '/' . $path_parts[1];
|
||||
} else {
|
||||
unset( $parts['path'] );
|
||||
}
|
||||
}
|
||||
|
||||
return _get_component_from_parsed_url_array( $parts, $component );
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a specific component from a parsed URL array.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
* @param array|false $url_parts The parsed URL. Can be false if the URL failed to parse.
|
||||
* @param int $component The specific component to retrieve. Use one of the PHP
|
||||
* predefined constants to specify which one.
|
||||
* Defaults to -1 (= return all parts as an array).
|
||||
* @see http://php.net/manual/en/function.parse-url.php
|
||||
* @return mixed False on parse failure; Array of URL components on success;
|
||||
* When a specific component has been requested: null if the component
|
||||
* doesn't exist in the given URL; a sting or - in the case of
|
||||
* PHP_URL_PORT - integer when it does. See parse_url()'s return values.
|
||||
*/
|
||||
function _get_component_from_parsed_url_array( $url_parts, $component = -1 ) {
|
||||
if ( -1 === $component ) {
|
||||
return $url_parts;
|
||||
}
|
||||
|
||||
$key = _wp_translate_php_url_constant_to_key( $component );
|
||||
if ( false !== $key && is_array( $url_parts ) && isset( $url_parts[ $key ] ) ) {
|
||||
return $url_parts[ $key ];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate a PHP_URL_* constant to the named array keys PHP uses.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
* @see http://php.net/manual/en/url.constants.php
|
||||
*
|
||||
* @param int $constant PHP_URL_* constant.
|
||||
* @return string|bool The named key or false.
|
||||
*/
|
||||
function _wp_translate_php_url_constant_to_key( $constant ) {
|
||||
$translation = array(
|
||||
PHP_URL_SCHEME => 'scheme',
|
||||
PHP_URL_HOST => 'host',
|
||||
PHP_URL_PORT => 'port',
|
||||
PHP_URL_USER => 'user',
|
||||
PHP_URL_PASS => 'pass',
|
||||
PHP_URL_PATH => 'path',
|
||||
PHP_URL_QUERY => 'query',
|
||||
PHP_URL_FRAGMENT => 'fragment',
|
||||
);
|
||||
|
||||
if ( isset( $translation[ $constant ] ) ) {
|
||||
return $translation[ $constant ];
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return $parts;
|
||||
}
|
||||
Reference in new issue
Block a user