parse_url() does not parse some obvious errors so I made a complementary function
function url_check(string $url){
$sym = null;
$len = strlen($url);
for ($i=0; $i<$len; $i++){
if ($url[$i] == '?'){
if ($sym == '?' || $sym == '&')
return false;
$sym = '?';
}elseif ($url[$i] == '&'){
if ($sym === null)
return false;
$sym = '&';
}
}
return true;
}
}