Giriş Yap / Kayıt Ol

WM Aracı'na üyelikler tekrar açıldı! Kayıt olmak için TIKLAYIN!


1Beğeni
  • 1 Yazan asw13tr

Cevap Yaz Favorilerime Ekle
Seçenekler Stil
Geri Git   Forum > > PHP

Array İçinde Kullanmak İstiyorum

  #1  
Okunmamış 05 Ekim 2019, 18:05
Avatar Seçilmemiş
WM Aracı
 
Üyelik Tarihi: 29 Eylül 2011
Cinsiyet: Erkek
Meslek: öğrenci
Konum: Manisa
Ad, Soyad: Mu... Ka...
Mesajlar: 618
Beğeniler: 106 / 48
Ticaret: 1, 100%
Aşağıda link üzerinde page sildirebiliyorum, fakat ikinci ve daha fazlasını sildirmek istediğimde array kullanmam gerekli bunu beceremedim. Mesela type ile birlikte pageyi sildirmek istiyorum.
PHP- Kodu:
$key 'page';
$url 'https://www.site.com/?type=product&page=5';

// Remove specific parameter from query string
$filteredURL preg_replace('~(\?|&)'.$key.'=[^&]*~''$1'$url);

echo 
$filteredURL;  // Çıktısı 'https://www.site.com/?type=product 
  #2  
Okunmamış 05 Ekim 2019, 22:20
edcsmile Adlı Üyenin Avatarı
Game Developer
 
Üyelik Tarihi: 08 Mayıs 2015
Cinsiyet: Erkek
Meslek: Developer
Konum: Samsun
Ad, Soyad: İl... Şa...
Mesajlar: 791
Beğeniler: 229 / 207
Ticaret: 12, 100%
İstediğiniz link yapısı nasıl olmalı? Bunu söylerseniz eğer ona göre uyarlayabiliriz.
Örneğin;
https://www.site.com/?type=product&page=(5,6,7)
Uygun mu?
  #3  
Okunmamış 06 Ekim 2019, 00:01
soulmy Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 12 Haziran 2012
Cinsiyet: Erkek
Meslek: Öğretmen
Konum: Samsun
Ad, Soyad: Or... Yü...
Mesajlar: 1.740
Beğeniler: 395 / 400
Ticaret: 19, 100%
Tam olarak ne istiyorsunuz bilmiyorum ama parse_url belki işinizi görür. Bir bakın.
Blog Destekli Webmaster Araçları Scripti v3: https://goo.gl/f4lXDG
  #4  
Okunmamış 06 Ekim 2019, 00:11
Avatar Seçilmemiş
WM Aracı
 
Üyelik Tarihi: 29 Eylül 2011
Cinsiyet: Erkek
Meslek: öğrenci
Konum: Manisa
Ad, Soyad: Mu... Ka...
Mesajlar: 618
Beğeniler: 106 / 48
Ticaret: 1, 100%
Yapmak istediğim şey şu sayfadaki şey. Lakin bu örnekte bir adet parametre silebiliyoruz ben birden fazla parametre silmek istiyorum. Sayfada bu : https://www.codexworld.com/how-to/re...ry-string-php/

Örnekte bu:
PHP- Kodu:
$key 'page';
$url 'https://www.codexworld.com/?type=product&page=5';

// Remove specific parameter from query string
$filteredURL preg_replace('~(\?|&)'.$key.'=[^&]*~''$1'$url); 
  #5  
Okunmamış 06 Ekim 2019, 00:22
Avatar Seçilmemiş
WM Aracı
 
Üyelik Tarihi: 29 Eylül 2011
Cinsiyet: Erkek
Meslek: öğrenci
Konum: Manisa
Ad, Soyad: Mu... Ka...
Mesajlar: 618
Beğeniler: 106 / 48
Ticaret: 1, 100%
Şu şekilde kullanıldığında tek parametreyi siliyor :
PHP- Kodu:
$key 'page';
$url 'https://www.site.com/?type=product&page=5';

// Remove specific parameter from query string
$filteredURL preg_replace('~(\?|&)'.$key.'=[^&]*~''$1'$url);

echo 
$filteredURL;  // Çıktısı 'https://www.site.com/?type=product 
fakat page ve type paremetrelerini birlikte silmek istediğimde çalışmıyor.
Yani şöyle birşey yapmak istiyorum fakat yemiyor :
PHP- Kodu:
$key = array('page','type');
$url 'https://www.site.com/?type=product&page=5';

// Remove specific parameter from query string
$filteredURL preg_replace('~(\?|&)'.$key.'=[^&]*~''$1'$url);

echo 
$filteredURL;  // Çıktısı 'https://www.site.com/?type=product 
  #6  
Okunmamış 08 Ekim 2019, 22:57
Avatar Seçilmemiş
WM Aracı
 
Üyelik Tarihi: 23 Aralık 2018
Yaş / Cinsiyet: 28 / Erkek
Konum: Trabzon
Ad, Soyad: Fu... At...
Mesajlar: 3
Beğeniler: 1 / 0
Ticaret: 0, 0%
En acemi şekilde kodlayıp anlatmaya çalıştım. Umarım işine yarar


PHP- Kodu:
    $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

PHP- Kodu:
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ı
PHP- Kodu:
$newUrl clearParams("https://www.site.com/?type=product&category=5&page=3&order_by=id&order=desc"'category,order_by'); 
silenthilll bunu beğendi.
  #7  
Okunmamış 08 Ekim 2019, 23:17
Avatar Seçilmemiş
WM Aracı
 
Üyelik Tarihi: 29 Eylül 2011
Cinsiyet: Erkek
Meslek: öğrenci
Konum: Manisa
Ad, Soyad: Mu... Ka...
Mesajlar: 618
Beğeniler: 106 / 48
Ticaret: 1, 100%
asw13tr eyvallah pek güzel oldu teşekkür ederim.
  #8  
Okunmamış 09 Ekim 2019, 16:09
Avatar Seçilmemiş
WM Aracı
 
Üyelik Tarihi: 29 Eylül 2011
Cinsiyet: Erkek
Meslek: öğrenci
Konum: Manisa
Ad, Soyad: Mu... Ka...
Mesajlar: 618
Beğeniler: 106 / 48
Ticaret: 1, 100%
<a href="<?php echo $newUrl = clearParams("https://www.site.com/?type=product&category=5", 'type,category'); ?>&araba=Opel"> Lik Verildi </a>

asw13tr
Yukarıdaki gibi link verdiğimizde tarayıcıda şu şekilde gözüküyor :
https://www.site.com/?=&araba=Opel
yani soru işaretinden sonra fazladan = işareti koyuyor. Eğer
PHP- Kodu:
$urlParams[] = $key.'='.$val
içerisindeki = işaretini kaldırsan bu seferde paremetre aralarına eşittir işareti koymuyor.

Bunu nasıl çözebiliriz aşağıdaki gibi birşey mi yapılmalı

PHP- Kodu:
if(!in_array($key$items)){
$urlParams[] = $key.'='.$val;
 } elseif (
parametre yok ise) {
$urlParams[] = $key.''.$val;

Konu silenthilll tarafından (09 Ekim 2019, 16:11 ) değiştirilmiştir.
  #9  
Okunmamış 09 Ekim 2019, 18:42
Avatar Seçilmemiş
WM Aracı
 
Üyelik Tarihi: 23 Aralık 2018
Yaş / Cinsiyet: 28 / Erkek
Konum: Trabzon
Ad, Soyad: Fu... At...
Mesajlar: 3
Beğeniler: 1 / 0
Ticaret: 0, 0%
PHP- Kodu:
<a href="<?php echo clearParams("https://www.site.com/?type=product&category=5&araba=Opel"'type,category'); ?>">


Senin sonradan eklediğin parametreyide fonksiyonun içindeki linke ekle.
Cevap Yaz Favorilerime Ekle


Konuyu toplam 1 kişi okuyor. (0 üye ve 1 Ziyaretçi)
 
Seçenekler
Stil
Normal Normal

Geri Git   Forum > PHP


Yetkileriniz
Konu açma yetkiniz: Yok
Cevap Yazma Yetkiniz Yok
Eklenti yükleme yetkiniz: Yok
Mesajınızı değiştirme yetkiniz: Yok

BB code: Açık
İfadeler: Açık
[IMG] Kodları: Açık
HTML kodu: Kapalı




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şu anki Zaman: 04:19.