在PHP中,我想在单击按钮时更改网站的语言(英语,德语等)。这是解决这个问题的正确方法吗?
<?php
$language;
if ($language == "en") {
include("headerEn.php");
} else {
include("header.php");
}
?>
<a href="index.php"><?php $language = "en"; ?>
<img src="images/language/languageNO.png"></a>
<a href="index.php"><?php $language = "no"; ?>
<img src="images/language/languageEN.png"></a>
更改网站语言的最佳方法是什么,并在用户返回时保持不变?
答案 0 :(得分:9)
你可以通过
来做到这一点<a href="index.php?language=en">
<a href="index.php?language=no">
并获取语言并将其存储在cookie中并根据cookie包含文件,如
if ( !empty($_GET['language']) ) {
$_COOKIE['language'] = $_GET['language'] === 'en' ? 'en' : 'nl';
} else {
$_COOKIE['language'] = 'nl';
}
setcookie('language', $_COOKIE['language']);
而不是
if ( $_COOKIE['language'] == "en") {
include("headerEn.php");
} else {
include("header.php");
} ?>
答案 1 :(得分:2)
拥有默认值总是好的,这样你就永远不会进入无语言网站。
$language = $_REQUEST["language"];
$default_header="myheaderXXX.php";
switch ($language) {
case "en":
include("headerEn.php");
break;
case "no":
include("header.php");
break;
default:
include($default_header);
}
然后创建这样的链接:
<a href="index.php?language=en">
<a href="index.php?language=no">
答案 2 :(得分:1)
要在不改变方法的情况下提供解决方案,您可以这样做。
<?php
if(isset($_GET['language']))
$language = $_GET['language'];
else
$language = "";
if ($language == "en") {
include("headerEn.php");
} else {
include("header.php");
} ?>
<a href="index.php?language = en"><img src="images/language/languageNO.png"> </a>
<a href="index.php?language = no"><img src="images/language/languageEN.png"></a>
如果您想保留选择,可以将此值存储在数据库或会话中。
答案 3 :(得分:0)
尝试将此$language
值保存到会话变量。重新加载页面时检查是否设置了会话变量。
如果设置使用$language
注:
$language = $_GET['language'];
答案 4 :(得分:0)
您无法通过html更改PHP中的变量。 PHP是服务器式HTML是客户端的
您可以使用GET variables进行更改。这是最简单的方法。
答案 5 :(得分:0)
您可以像这样实现相同的代码。我编辑了你的代码。
<?php
$language; ?>
<?php if ($language == "en") : ?>
<?php include("headerEn.php"); ?>
<a href="index.php"><?php $language = "en"; ?><img src="images/language/languageNO.png"></a>
<?php else: ?>
<?php include("header.php"); ?>
<a href="index.php"><?php $language = "no"; ?><img src="images/language/languageEN.png"></a>
<?php endif; ?>
这将解决您的问题。
答案 6 :(得分:0)
在这种情况下,我尝试使用Session变量来存储和定义语言。一切都有效,直到我打开缓存。启用缓存后,即使重新加载页面也会返回相同的语言,并且用户无法更改语言。 所以我考虑在点击语言按钮(国旗)后使用AJAX请求更改语言