如果选择其他语言,如何从URL中删除或隐藏?lang =

时间:2019-03-29 22:11:30

标签: php

我有一个语言选择器脚本。代码如下:

index.php

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '4.2'
        end
    end
end

en.php

<?php

session_start();

$allowed_lang = array('en','de');

if (isset($_GET['lang']) === true && in_array($_GET['lang'], $allowed_lang) === true) {
    $_SESSION['lang'] = $_GET['lang'];
} else if (isset($_SESSION['lang']) === false) {
    $_SESSION['lang'] = 'en';
}

include ''. $_SESSION['lang'] .'.php';

echo $lang['hello'] , '!';

?>
<ul>
    <li><a href="?lang=en">English</a></li>
    <li><a href="?lang=de">Deutsch</a></li>
</ul>

de.php

<?php

$lang = array(
    'hello' => 'Hello',
);

?>

默认语言当然是英语,如果我选择其他语言(例如德语),那么在更改语言后,URL为<?php $lang = array( 'hello' => 'Hallo', ); ?> 。切换为英语后,网址为index.php?lang=de

如何从网址中删除或隐藏index.php?lang=en?lang=en,因此,如果我单击“ deutsch”链接,该语言将切换但不向当前URL附加任何内容(例如{{ 1}})?

预先感谢您的回答!

1 个答案:

答案 0 :(得分:0)

您可以使用GET参数来代替使用POST参数进行语言选择。因此,您必须将语言选择器设为调用文档本身的form(即action属性,但带有method="post"),然后发送并接收语言选择作为POST变量,即不可见。

在那之后(即用户切换到以下页面),您可以使用会话变量,cookie或本地存储来保存和调用所选语言。