lostyazilim
tr.link

preg_replace ile ilgili ufak bir sorun ?

7 Mesajlar 894 Okunma
acebozum
tr.link

silenthilll silenthilll WM Aracı Kullanıcı
  • Üyelik 29.09.2011
  • Yaş/Cinsiyet 39 / E
  • Meslek öğrenci
  • Konum Manisa
  • Ad Soyad M** K**
  • Mesajlar 699
  • Beğeniler 61 / 126
  • Ticaret 1, (%100)
function silmek($url) {
$url = preg_replace('/(?:&|(\?))'.$anahtar.'=[^&]*(?(1)&|)?/i', "$1", $url);
}
?>


Şöyle bir sorunum var sayfa içinde linki yazdırdığım zaman örnek:

www.sitem.com/?ismim=murat
www.sitem.com/?ismim=
yukurıdaki preg_replace ile ismim=murat ve ismim=
sildiriyor fakat sadece ismim olduğu zaman silmiyor
www.sitem.com/?ismim olduğu zaman ismim kısmını silmiyor ben üç şekilde de sildirmek istiyorum nasıl bir değişiklik yapmam lazım preg_replace'de
 

 

wmaraci
reklam

hasidluu hasidluu PHP SCRIPT YAZILIR Kullanıcı
  • Üyelik 14.07.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Bilgisayar Mühendisi
  • Konum KKTC
  • Ad Soyad D** G**
  • Mesajlar 39
  • Beğeniler 6 / 13
  • Ticaret 1, (%100)
anahtarı "ismim=" olarak yaz.

Bir de bu kodla ne yapmaya çalışıyorsun bu ne çeşit bir get explodudur? Sen tam ne yaptığını yaz hele ona göre düzeltme yapalım.
 

 

silenthilll silenthilll WM Aracı Kullanıcı
  • Üyelik 29.09.2011
  • Yaş/Cinsiyet 39 / E
  • Meslek öğrenci
  • Konum Manisa
  • Ad Soyad M** K**
  • Mesajlar 699
  • Beğeniler 61 / 126
  • Ticaret 1, (%100)
hasidluu
tarayıcı link'inde mesela www.sonkod.com?soyad=luu&ismim=hasid diyelim.
Ben sayfamda tarayıcıdaki link alıp ismim anahatarını ve değerini sildirip göstermek istiyorum yani www.sonkod.com?soyad=luu bunuda yukarıdaki verdiğim kod yapıyor.
Yada tarayıcıdaki link www.sonkod.com?soyad=luu&ismim= ise gene ismim anahatarını ve = siliyor.
fakat tararıyıcı linkinde www.sonkod.com?soyad=luu&ismim ise anahtar değeri yoksa veya eşittir yoksa bu sefer www.sonkod.com?soyad=luu&ismim sayfada ismim anahtarını silmiyor bu şekilde kalıyor.
 

 

hasidluu hasidluu PHP SCRIPT YAZILIR Kullanıcı
  • Üyelik 14.07.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Bilgisayar Mühendisi
  • Konum KKTC
  • Ad Soyad D** G**
  • Mesajlar 39
  • Beğeniler 6 / 13
  • Ticaret 1, (%100)
Neden $_GET ile tutmuyorsun bu parametreleri?

$_GET["ismim"] şeklinde?
 

 

wmaraci
wmaraci

silenthilll silenthilll WM Aracı Kullanıcı
  • Üyelik 29.09.2011
  • Yaş/Cinsiyet 39 / E
  • Meslek öğrenci
  • Konum Manisa
  • Ad Soyad M** K**
  • Mesajlar 699
  • Beğeniler 61 / 126
  • Ticaret 1, (%100)
hasidluu
Onlarca $_Get[""] var teker teker $_Get[] girip birde if else girecek işine bir sürü kod kalabalığı olacak.
Neden tek bir işlem ile tarayıcıda değerleri alıp istedim Get değerini sildirmek varken kod kalabalığına gideyim.
Benim istediğim preg_replace('/(?:&|(\?))'.$anahtar.'=[^&]*(?(1)&|)?/i', "$1", $url); bir değişiklik ile direk değersiz anahtarda silinsin
 

 

silenthilll silenthilll WM Aracı Kullanıcı
  • Üyelik 29.09.2011
  • Yaş/Cinsiyet 39 / E
  • Meslek öğrenci
  • Konum Manisa
  • Ad Soyad M** K**
  • Mesajlar 699
  • Beğeniler 61 / 126
  • Ticaret 1, (%100)
Sorun Çözüldü.
 

 

hasidluu hasidluu PHP SCRIPT YAZILIR Kullanıcı
  • Üyelik 14.07.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Bilgisayar Mühendisi
  • Konum KKTC
  • Ad Soyad D** G**
  • Mesajlar 39
  • Beğeniler 6 / 13
  • Ticaret 1, (%100)

silenthilll adlı üyeden alıntı

hasidluu
Onlarca $_Get[""] var teker teker $_Get[] girip birde if else girecek işine bir sürü kod kalabalığı olacak.
Neden tek bir işlem ile tarayıcıda değerleri alıp istedim Get değerini sildirmek varken kod kalabalığına gideyim.
Benim istediğim preg_replace('/(?:&|(\?))'.$anahtar.'=[^&]*(?(1)&|)?/i', "$1", $url); bir değişiklik ile direk değersiz anahtarda silinsin


$url = $_SERVER['REQUEST_URI'];
foreach($_GET as $item){
if($item == ""){
$url = str_replace($item."=", "", $url);
$url = str_replace($item, "", $url);
}
}
echo $url;

hepsi bu kadar
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al