wp_parse_url
函数
      wp_parse_url ( $url, $component = -1 )    - 参数
- 
- 
                (string)
 $url
 The URL to parse.- Required: 是
 
- 
                (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).- Required: 否
- Default: -1
 
 
- 
                (string)
- 返回值
- 
- (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.
 
- 定义位置
- 
- 
                                  wp-includes/http.php
 , line 685
 
- 
                                  wp-includes/http.php
- 引入
- 4.4.0
- 弃用
- –
A wrapper for PHP’s parse_url() function that handles consistency in the return values
across PHP versions.
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.
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 );
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
 
      