2012-03-08 117 views
-1

在鏈接中,您可以附加獲取參數。如果我想添加一個新的get參數給已經有一個的url。使用GET參數鏈接

舉例: 老:使用example.php HI =你好 新:使用example.php HI =你好你好&喜=

有沒有做這種方式的其他方式:

echo '<a href="'. $_SERVER['REQUEST_URI'].'&hello=hi">'; 

回答

1

警告正在檢測問號是否存在。如果沒有,你需要添加它。一個快速和骯髒的方法是strpos

if (strpos($_SERVER['REQUEST_URI'], '?') === false) { 
    $qsPart = '?'; 
} else { 
    $qsPart = '&'; 
} 

$oldURL = $_SERVER['REQUEST_URI']; 
echo '<a href="' . $oldURL . $qsPart . 'hello=hi">'; 

更健壯的方法是打破REQUEST_URI,用parse_urlhttp_build_query檢查後重建,但可能超出範圍。

1
<?php 
$params = array(
    'hello' => 'hi', 
    'hi' => 'hello', 
); 
$url = $_SERVER['REQUEST_URI'] . '?' . http_build_query($params); 
?> 
<a href="<?php echo htmlentities($url); ?>">Link to tuther page</a> 

當你鏈接到同一頁面,那麼你也不需要提供$_SERVER['REQUEST_URI'],您只需提供參數,像這樣生成相對URL:

<a href="?<?php echo htmlentities(http_build_query($params)); ?>"> 
    Link to tuther page</a> 
1
echo '<a href="'.$_SERVER['REQUEST_URI'].'&hello=hi">'; 

或者你可以做一個函數,接受盡可能多的參數,只要你想。

<?php 
$urlArray = array('value'=>'key', 'hi' => 'hello'); 
$url ='example.php'; 
function urlGenerator($url,$urlArray){ 
foreach ($urlArray as $key => $value) { 
    if($i==0){ 
    $url .= '?'.$key.'='.$value; 
    }else{ 
    $url .= '&'.$key.'='.$value;  
    } 
    $i++; 
} 
return $url; 
} 
echo urlGenerator($url,$urlArray); 
//Output: example.php?value=key&hi=hello 
+0

我沒有意識到你只是試圖訪問當前的URL。無論如何,我會離開它,因爲它有任何用處。否則,請參閱@webbiedave評論。 – 2012-03-08 23:30:03