[英]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.