2010-06-29 15 views
13

Parametreleri korurken bir sayfadan diğerine yönlendirmeye çalışıyorum.

örn. Eğer bir sayfam page.php? param1 = 1 & param2 = 2 ise, "param1 = 1 & param2 = 2" çıkarmanın en kolay yolu nedir?

cevap

33

Kullanım $_SERVER['QUERY_STRING'] soru işaretinden sonra her şeyi erişmek için. Eğer urlniz varsa

Yani:

http://www.sample.com/page.php?param1=1&param2=2 

sonra bu:

$url = "http://www.sample.com/page2.php?".$_SERVER['QUERY_STRING']; 
echo $url; 

döndürür:

http://www.sample.com/page2.php?param1=1&param2=2 
5

yapardım

$url önce zaten her şeyi içerir
$querystring = '?' 
foreach($_GET as $k=>$v) { 
    $querystring .= $k.'='.$v.'&'; 
} 
$url .= substr($querystring, 0, -1); 

?

ayrıca $_SERVER['QUERY_STRING'] kullanabilirsiniz ama PHP kılavuzuna göre:

$ _SERVER başlıklarını, yollardan ve senaryo konumları gibi bilgileri içeren bir dizidir olduğunu. Bu dizideki girişler web sunucusu tarafından oluşturulur. * Her web sunucusunun bunlardan herhangi birini sağlayacağı garantisi yoktur; sunucular bazılarını atlayabilir veya burada listelenmeyen diğerlerini sağlayabilir. *

+1

Bu teknik olarak doğrudur, ancak kullandığı herhangi bir web sunucusu neredeyse kesinlikle "$ _SERVER ['QUERY_STRING']'; Çoğu PHP tabanlı sistem mevcut –

+0

güvenir ve kolayca test edilebilir. – Kzqai

+0

bu da dizileri şöyle işlemez: 'key [innerkey] = value'. seni alacak: 'anahtar = Array' – ivoba

7

$_SERVER['QUERY_STRING']

Source

7

Ayrıca Robs cevap:

yapabilirsinizkullanın 210 ve $ _GET.
Bu yerleşiktir ve dizilerle ilgilenebilir.
Ayrıca GET paramlarını bu şekilde kolayca değiştirebilirsiniz, tekrar bir araya getirdiğinizden emin olun.

unset($_GET['unsetthis']); 
$query = http_build_query($_GET); 
İlgili konular