javascript - 多语言 PHP 链接
问题描述
所以我有一个小问题。此代码中的所有内容都可以正常工作,但是当有人出于某种原因放置这样的链接?lang=enASa而不是?lang=en时,它只显示“定义”(不知道我是否可以称其为定义)示例:相反显示:标题它显示:_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
强制使用默认值。
解决方案
在调用包含之前,您必须检查给定语言的语言文件是否存在。
// Include Language file
if(isset($_SESSION['lang']) && file_exists("lang_".$_SESSION['lang'].".php")){
include "lang_".$_SESSION['lang'].".php";
}else{
include "lang_en.php";
}
推荐阅读
- sparql - dbpedia 中以三元组形式出现的所有属性的列表
- linux - Linux 上的 ZSH 无法识别 shell 脚本中的有效选项
- python - 单击python我如何从命令行读取json之类的参数
- python - 有什么方法可以获取每只股票(200+)的所有季度业绩数据并使用 python 将其存储在 excel 中?
- azure - 天蓝色数据工厂更新
- testing - 结构动态 TestCafe 运行
- oracle - PLSQL:如何逐行通过游标,将值复制到表中,并在同一个循环中将这些值保存到变量中?
- python - SQLAlchemy 中的反射不适用于 MS SQL Server 系统表?
- android - NetworkOnMainThreadException 对协程中的网络调用有效吗?
- python - 带有两个程序的 gui 类