所以我有点问题。此代码中的所有内容都有效,但当有人将?lang = enASa 这样的链接放入?lang = en 时出于某种原因它只显示" define& #34; (不知道我是否可以称之为定义)示例:它不显示:标题,而是显示: _TITLE 。代码是这样的:
<?php
session_start();
// Set Language variable
if(isset($_GET['lang']) && !empty($_GET['lang'])){
$_SESSION['lang'] = $_GET['lang'];
if(isset($_SESSION['lang']) && $_SESSION['lang'] != $_GET['lang']){
echo "<script type='text/javascript'> location.reload(); </script>";
}
}
// Include Language file
if(isset($_SESSION['lang'])){
include "lang_".$_SESSION['lang'].".php";
}else{
include "lang_en.php";
}
?>
在我使用此页面(<?= _TITLE ?>
)替换单词:
<h3 style="color: white" class="subheading left"><?= _TITLE ?></h3>
要翻译我正在使用此文件(lang_en.php):
<?php
define("_TITLE", "Title");
所有代码都运行正常,我希望有人可以帮助我,在lang无效时强制使用默认英语。示例:如果有人尝试www.example.com/index.php?lang=edadsa
而不是www.example.com/index.php?lang=en
我们的www.example.com/index.php
强制使用默认值。
答案 0 :(得分:3)
在调用include之前,您必须检查给定语言是否存在语言文件。
// Include Language file
if(isset($_SESSION['lang']) && file_exists("lang_".$_SESSION['lang'].".php")){
include "lang_".$_SESSION['lang'].".php";
}else{
include "lang_en.php";
}