2012-03-08 2 views
-1

В ссылке вы можете добавить параметры получения. Если я хочу добавить новый параметр get к URL-адресу, который уже имеет его.Ссылка с параметром GET

Пример: старый: example.php привет = привет новый: example.php привет = привет & привет = привет

Есть ли другой способ сделать это следующим образом:?

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_url и http_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. –

Смежные вопросы