- preg_match: documentation ( source)
- var_export: documentation ( source)
- parse_url: documentation ( source)
<?php
function wp_parse_url( $url ) {
// TODO; Move to wp_parse_url() ?
// Prefix with a temporary placeholder scheme for scheme-less URL's to work around PHP Bugs
if ( preg_match( '~^//~', $url ) ) {
$url = "wp-placeholder:$url";
}
if ( preg_match( '~^/[^/]~', $url ) ) {
$url = "wp-placeholder://wp-placeholder$url";
}
if ( preg_match( '~^[^/]+://.+@[^/]+$~', $url ) ) {
$url .= '/';
}
$parts = @parse_url( $url );
foreach ( array( 'scheme', 'host' ) as $component ) {
if ( isset( $parts[ $component ] ) && 'wp-placeholder' === $parts[ $component ] ) {
unset( $parts[ $component ] );
}
}
return $parts;
}
var_export(wp_parse_url( '//some-host.com/?url=http://whatever/' ));