2012-09-10 46 views
1

如何爲我的網頁添加以下http_build_query腳本?我該如何做這項工作? http_build_query示例

$params = array(
    'p' => 'foo', 
    'lang' => 'bar' 
); 

echo http_build_query($params); // p=foo&lang=bar 

echo '?' . http_build_query($params); // ?p=foo&lang=bar 

相關PHP url strings conflict "?" and "&"

下面是我的網頁作品:

<a href="?lang=es">Español</a> 
<a href="?lang=en">English</a> 

<?php 
    $p = $_GET['p']; 
    $pages = array('g1', 'g2', 'g3'); 
    if (!empty($p)) { 
     if(in_array($p,$pages)) { 
      $p .= '.php'; 
      include($p); 
     } 
    } 
    else { 
     echo '<a href="?p=g1">Page 1</a> <a href="?p=g2">Page 2</a></li> <a href="?p=g3">Page 3</a>'; 
    } 
?> 
+1

你想要做什麼? –

+0

問題是什麼?你想用http_build_query函數替換每個statis href =「..」? – dbf

回答

2

你可以寫一個函數來合併查詢參數與當前$_GET陣列。

<?php 
function merge_queries(array $original, array $updates) { 
    $params = array_merge($original, $updates); 
    return '?'.http_build_query($params); 
} 
?> 

<a href="<?php echo merge_queries($_GET, array('lang'=>'es')); ?>">Español</a> 
<a href="<?php echo merge_queries($_GET, array('lang'=>'en')); ?>">English</a> 

<?php 
// code abbreviated for clarity 
echo '<a href="'.merge_queries($_GET, array('p'=>'g1')).'">Page 1</a> 
     <a href="'.merge_queries($_GET, array('p'=>'g2')).'">Page 2</a> 
     <a href="'.merge_queries($_GET, array('p'=>'g3')).'">Page 3</a>'; 
?> 
+0

它完美的作品:)非常感謝你! – coldpumpkin

0

你可以做到這一點很簡單:

$urlpath = implode('&', $params); 
$url = $yourhost . '?' . $urlpart; 
+0

我應該如何以及在哪裏包含這些內容?我在這個PHP的東西有點新。 – coldpumpkin