<?php
$urls = [
'https://www.asdfasd.com/asdfasd/fa/sd/fa',
'http://www.asdfasd.com/asdfasd/fa/sd/fa',
'www.asdfasd.com/asdfasd/fa/sd/fa',
'asdfasd.com/asdfasd/fa/sd/fa',
'/asdfasd/fa/sd/fa',
'asdfasd/fa/sd/fa',
'../img/logo.png',
'https://www.example.com/foo/bar?one=1&two=1#main',
'https://www.example.com/?one=1',
'https://www.example.com/#main',
'http:///example.com',
'http://:80',
'http://user@:80',
];
$componentsWanted = [
'path' => '',
'query' => '?',
'fragment' => '#',
];
foreach ($urls as $url) {
$components = parse_url($url);
if ($components === false) {
echo "Could not parse URL: $url\n";
continue;
}
$newUrl = '';
foreach ($componentsWanted as $component => $prefix) {
if (isset($components[$component])) {
$newUrl .= $prefix . $components[$component];
}
}
echo "$url -> $newUrl\n";
}
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- https://www.asdfasd.com/asdfasd/fa/sd/fa -> /asdfasd/fa/sd/fa
http://www.asdfasd.com/asdfasd/fa/sd/fa -> /asdfasd/fa/sd/fa
www.asdfasd.com/asdfasd/fa/sd/fa -> www.asdfasd.com/asdfasd/fa/sd/fa
asdfasd.com/asdfasd/fa/sd/fa -> asdfasd.com/asdfasd/fa/sd/fa
/asdfasd/fa/sd/fa -> /asdfasd/fa/sd/fa
asdfasd/fa/sd/fa -> asdfasd/fa/sd/fa
../img/logo.png -> ../img/logo.png
https://www.example.com/foo/bar?one=1&two=1#main -> /foo/bar?one=1&two=1#main
https://www.example.com/?one=1 -> /?one=1
https://www.example.com/#main -> /#main
Could not parse URL: http:///example.com
Could not parse URL: http://:80
Could not parse URL: http://user@:80
preferences:
116.15 ms | 403 KiB | 91 Q