wp_parse_url() WordPress Function
The wp_parse_url() function is a utility function that handles the parsing of a URL and returns its components. It is used by the WordPress codebase to parse the URLs of posts and pages.
wp_parse_url( string $url, int $component = -1 ) #
A wrapper for PHP’s parse_url() function that handles consistency in the return values across PHP versions.
Description
PHP 5.4.7 expanded parse_url()’s ability to handle non-absolute URLs, including schemeless and relative URLs 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 containing a ":" in the query are being handled inconsistently. This function works around those differences as well.
Parameters
- $url
(string)(Required)The URL to parse.
- $component
(int)(Optional)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).
Default value: -1
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 string or
- in the case of PHP_URL_PORT
- integer when it does. See parse_url()'s return values.
Source
File: wp-includes/http.php
function wp_parse_url( $url, $component = -1 ) { $to_unset = array(); $url = (string) $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; } $parts = parse_url( $url ); if ( false === $parts ) { // Parsing failure. return $parts; } // Remove the placeholder values. foreach ( $to_unset as $key ) { unset( $parts[ $key ] ); } return _get_component_from_parsed_url_array( $parts, $component ); }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
4.7.0 | The $component parameter was added for parity with PHP's parse_url() . |
4.4.0 | Introduced. |