2010-11-20 17 views
0

Bir PHP betiği tarafından bir querystring üretilen bir URL var. Querystring'de çeşitli değerler görüntülenir.Bir querystring değeri kaldırın

Temel olarak, bir ziyaretçi bir bağlantıyı veya bir 'kaldır' düğmesini tıkladığında belirli bir değeri sorgu dizesinden kaldırmam gerekiyor.

Yani, sorgu dizesi şöyle görünür: bir bağlantı ya 'kaldır' düğmesine bir kullanıcı tarafından tıklandığında, bar1=green kaldırılır

http://www.foo.com/script.php?bar1=green&bar2=blue 

Ama ve ziyaretçi aşağıdaki URL'ye yönlendirilir:

http://www.foo.com/script.php?bar2=blue 

Bu, bir form veya çapa ile temel HTML'yi kullanmanın kolay olacağını düşündüm ancak şu ana kadar yapamamıştım.

Sadece bildiğiniz gibi, PHP betiğinin kendi koduna erişimim yok; uzaktan barındırılır ve bir iframe kullanarak bir PHP sarıcı tarafından web sayfama çağrılır.

Her türlü öneri büyük beğeni topladı.

Çok teşekkürler,

Matt

+0

, yapmanız çalıştığınız şeyi yapmak PHP koduna erişim olması gerekir. Bakabileceğimiz gerçek bir URL’niz var mı? Aradığınızı daha iyi anlamamıza yardımcı olabilir. –

cevap

4

Bu kodu kullanarak sorgu dizesi değeri kaldırabilirsiniz: tarifine dayanarak

<?php 
function parseQueryString($url,$remove) { 
    $infos=parse_url($url); 
    $str=$infos["query"]; 
    $op = array(); 
    $pairs = explode("&", $str); 
    foreach ($pairs as $pair) { 
     list($k, $v) = array_map("urldecode", explode("=", $pair)); 
     $op[$k] = $v; 
    } 
    if(isset($op[$remove])){ 
     unset($op[$remove]); 
    } 

    return str_replace($str,http_build_query($op),$url); 

} 
echo parseQueryString("http://www.foo.com/script.php?bar1=green&bar2=blue","bar2"); 
?> 
+0

Yanıt için teşekkürler. Bunu denedim ama işe yaramadı. Ben basit bir html formu düğmesi PHP'den daha uygun olacağını düşünüyorum? – Matt

+0

Sunucunuzda php5 olması gerekiyor – ynh

+0

Evet, PHP5 var .. – Matt

İlgili konular