3v4l.org

run code in 300+ PHP versions simultaneously
<?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