簡體   English   中英

PHP如何在鏈接中保留所有GET變量?

[英]PHP How do I retain all GET vars in links?

我有一些PHP代碼可以動態生成動態數據表。 通過單擊各種鏈接,您可以“優化”數據表。 我想要的是這些鏈接中的每一個都保留當前的GET信息並添加到其中。 IE:

$allPreviousVars = ???; // Could be 20+ vars
echo "<a href='".$allPreviousVars."&newVar=2'>Link</a>";

我可以通過循環迭代$ _GET來想辦法,但肯定有更快的方法嗎?

$ _SERVER [“QUERY_STRING”]怎么樣?

編輯:既然你很友好地給我這個答案,我應該補充一點。 在輸出之前,您應該將上面的變量包裝在htmlspecialchars()中。 否則,有人可以在其中鍵入帶有">的網址,這會破壞您的鏈接。

我這樣做如下:

<?php echo http_build_query(array_merge($_GET, array('foo'=>'bar', 'foo2'=>'bar2')); ?>

請注意,任何現有的'foo'或'foo2'鍵都將被替換。

如果需要從修改后的數組生成查詢字符串,請使用http_build_query() 如果您只想將查詢字符串發送到當前頁面,請按照建議操作並使用$ _SERVER [“QUERY_STRING”]。

我可能會這樣做:

$query = mySanitizeFunction($_GET);
$url = http_build_query($query) . '&newVar=2';

你最好的選擇是,如你所建議的那樣,循環遍歷$_GET的內容,從現有查詢參數和被覆蓋的位的混合構造URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM