- parse_str: documentation ( source)
- asort: documentation ( source)
- parse_url: documentation ( source)
- array_filter: documentation ( source)
- http_build_query: documentation ( source)
<?php
$str = 'https://www.somehost.com/test/index.html?param1=4¶m2=3¶m3=2¶m4=1¶m5=3';
function parse($str) {
// parse string to uri array
$uri = parse_url($str);
// parse query params to array
parse_str($uri['query'], $params);
// task1. filter params by 3
$params = array_filter($params, function($p) {
return (int)$p !== 3;
});
// task2. sort params
asort($params);
// task3. get url
$params['url'] = $uri['path'];
return $uri['scheme'] . '://' . $uri['host'] . '/?' . http_build_query($params);
}
echo parse($str);