$url = 'https://www.site.com/?type=product&category=5&page=3&order_by=id&order=desc';
function clearParams($url, $strParams){
// $strParams ile gönderilen değerleri parçala
$items = explode(',', $strParams);
// $url i /? den öncesi ve sonrası olarak 2 parça yap
list($rootUrl, $query) = explode('/?', $url);
// type=product&category=5&page=3&order_by=id&order=desc her parçayı & den ayır ve diziye aktar
$urlParamsStr = explode('&', $query);
// Daha sonra birleştirmek adına kalan değerleri toplayacak dizi
$urlParams = array();
// type=product category=5 page=3 order_by=id order=desc tümünü tek tek dön
foreach ($urlParamsStr as $param) {
// type=product bu parçaları = den ayır ve type product şeklinde al
list($key, $val) = explode('=', $param);
// sıradaki değer örneğin "product" anahtarı $items içinde yok ise daha sonra birleştirilmek üzere $urlParams içine ekle
if(!in_array($key, $items)){
// Silinmeyecek olanları $urlParams dizisine key=val şeklinde ekle ör: type=product
$urlParams[] = $key.'='.$val;
}
}
// Silinmeyecek olan parametreleri örneğin "type=product", "page=3" gibi kalanları aralarına & ekleyerek birleştir
$newQuery = implode('&', $urlParams);
// "https://www.site.com" ile "key=val&key2=val2" değerleri aralarına /? ekleyerek birleştir ve sonucu çıkart
return $rootUrl.'/?'.$newQuery;
}
echo clearParams($url, 'category,order_by');
Temiz Kod
function clearParams($url, $strParams){
$items = explode(',', $strParams);
list($rootUrl, $query) = explode('/?', $url);
$urlParamsStr = explode('&', $query);
$urlParams = array();
foreach ($urlParamsStr as $param) {
list($key, $val) = explode('=', $param);
if(!in_array($key, $items)){
$urlParams[] = $key.'='.$val;
}
}
$newQuery = implode('&', $urlParams);
return $rootUrl.'/?'.$newQuery;
}
Kullanımı
$newUrl = clearParams("https://www.site.com/?type=product&category=5&page=3&order_by=id&order=desc", 'category,order_by');