1

我没有PHP经验,我只知道基础知识。我不知道我是否正确地问这个问题,我什至不知道这是否可能,但我会尝试解释。

  1. 我有 10 多个表的数据库。每个表都被命名为国家(奥地利、德国、拉脱维亚、立陶宛等)。

  2. 我有脚本,当他连接到网站时显示用户浏览器语言。

  3. 另外,我有 PHP 查询脚本,它按用户浏览器语言显示数据(如果用户连接浏览器,主要语言是奥地利语,而不是 PHP 查询显示来自奥地利表的数据)。

HTTP_ACCEPT_LANGUAGE

if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ 
    $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); 
}
if($lc == "de") { $langas = "Germany"; }
if($lc == "lt") { $langas = "Lithuania"; }
// etc..
echo $langas;

询问:

foreach($db->query('SELECT * FROM '.$langas.'') as $row) {
    echo '<span>'.$row['info1'].'</span>';
    echo '<span>'.$row['info2'].'</span>';
// etc..
}

我想做的事:

我希望如果用户连接到网站,并且他的浏览器语言与我的表不匹配,那么默认情况下,查询应该使用其他表启动并且不发送错误(例如拉脱维亚表)。我怎么能这样做?

其他问题:

我知道,如果我将使用 HTTP_ACCEPT_LANGUAGE 函数,那么我将无法使用<select>代码,该用户将能够手动选择国家/地区。也许我错了..也许有人可以为我解释一下?

4

1 回答 1

1

尝试这样的事情

$langas = '';

if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ 
    $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); 

    if($lc == "de") { $langas = "Germany"; }
    if($lc == "lt") { $langas = "Lithuania"; }
    // etc
} 

if ( $langas == '' ) {
    // set default language
    $langas = "Germany";
}

foreach($db->query('SELECT * FROM '.$langas.'') as $row) {
    echo '<span>'.$row['info1'].'</span>';
    echo '<span>'.$row['info2'].'</span>';
// etc..
}

您的第二个问题需要作为单独的问题提出!

于 2015-01-03T20:20:09.600 回答