PHP的parse_url()函数的包装器,它处理PHP版本中返回值的一致性。

原型

wp_parse_url( string $url, int $component = -1 )

描述

PHP 5.4.7扩展了parse_url()处理非绝对url的能力,包括无路径和相对url的路径中的://。此函数适用于在PHP 5.2~5.4上提供标准输出的那些限制。

参数

$url (string) (Required) 要解析的URL。

$component (int) (Optional) 要检索的特定组件。使用PHP预定义常量之一来指定哪一个。默认为-1(=将所有零件作为数组返回)。

返回值

(mixed)  解析失败时为假;成功的URL组件数组;请求特定组件时:如果给定URL中不存在该组件,则为null;一个字符串或 – 在PHP_URL_PORT的情况下 – 当它的整数。请参阅parse_url()的返回值。

源文件

路径:wp-includes/http.php

<?php
...
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;
	}
	$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 );
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/wp_parse_url/