Связь с параметром GET - PullRequest
       13

Связь с параметром GET

0 голосов
/ 09 марта 2012

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

Пример: old: example.php? Hi = hello new: example.php? Hi = hello & hello = hi

Есть ли другой способ сделать это так:

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

Ответы [ 3 ]

1 голос
/ 09 марта 2012

Предостережение определяет, существует или нет вопросительный знак.Если это не так, вам нужно добавить его.Быстрый и грязный способ будет выглядеть следующим образом: 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 голос
/ 09 марта 2012
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
1 голос
/ 09 марта 2012
<?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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...