2012-04-17 100 views
1

我有鏈接的頁面,看起來像這樣:PHP添加GET變量鏈接

<a href="http://mysite.com/page.php">...</a> 

我也可以有一個GET變量郎= EN當前URL。如何將GET變量?lang = en添加到頁面中的所有鏈接,而無需手動添加它們或向每個鏈接添加變量?謝謝。

+0

定義「我有一個頁面」。這聽起來像一個靜態頁面,是一個嗎? – Jon 2012-04-17 12:09:12

+1

你應該編寫一個函數/方法來生成URL。 – kapa 2012-04-17 12:15:30

回答

0

設置$_ENV['lang'] = 'en'您的基本(假設的config.php)文件

getenv('lang')$_ENV['lang']

Refernece

0

檢索添加郎= EN會話變量$_SESSION['lang']='en' &在每個頁面中初始化它。

0

您可以使用輸出緩衝或Apache過濾器來分析您的輸出,以自動將lang查詢字符串參數添加到所有鏈接,但這不是非常有效。

如果你真的不想手動添加到每個鏈接,那麼我建議你將它存儲在會話變量中。

在每個頁面的開始(也許在一般包括腳本),你可以有這樣的:

<?php 
define('DEFAULT_LANG', 'en_GB'); 

session_start(); 

// check if a new lang has been specified. 
if (isset($_GET['lang'])) { 

    // yes, so use the requested lang 
    $_SESSION['lang'] = $_GET['lang']; 

    // otherwise, check if a lang was previously set 
} else if (! isset($_SESSION['lang'])) { 

    // no, so use default lang: 
    $_SESSION['lang'] = DEFAULT_LANG; 

} 
?> 

那麼你應該在你的頁面的其餘部分使用$_SESSION['lang']代替$_GET['lang']。此外,您可能需要添加某種驗證來確保所需的lang有效且可用。

+0

更改'} else if(!isset($ _ SESSION ['lang'])){'to'} else {'... PHP不需要再次檢查是否isset is – 2012-04-17 12:39:27

+0

否 - 第一個isset '檢查$ _GET ['lang']',第二個'$ _SESSION ['lang']'。閱讀評論。 – megaflop 2012-04-18 11:46:08

+0

Oups我把它變成了$ _GET,對不起:S – 2012-04-18 14:11:32