【发布时间】:2019-12-27 03:11:54
【问题描述】:
我在 .php 中创建了几个文件,其中有一个数组作为网站的翻译器。
这是结构
/db/config.php
/lang/en/en.php
/lang/fr/fr.php
/lang/de/de.php
这是 en.php 文件
<?php
$lang = array(
"one" => "one",
"five" => "five",
"nine" => "nine",
);
?>
在配置文件中我有数据库配置和语言数组的插入
文件 config.php
<?php
...... DB Config .......
$langServer = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (!isset($_SESSION['lang']) && !isset($_GET['lang']){
if($langServer == "en"){
$_SESSION['lang'] = "en";
}else if($langServer == "fr"){
$_SESSION['lang'] = "fr";
}else if($langServer == "de"){
$_SESSION['lang'] = "de";
}else{
$_SESSION['lang'] = "en";
}
}else{
$_SESSION['lang'] = "en";
}
require_once($_SERVER['DOCUMENT_ROOT']."/lang/" . $_SESSION['lang'] . "/". $_SESSION['lang'] .".php");
?>
我希望我可以在某个类或函数中访问该数组,如果我设置了一个 require_once 它不起作用...我找到的唯一解决方案是将数组插入到 $ _SESSION 但我不喜欢它作为一个想法.. 那: $_SESSION["arrayLang] = $lang;
我什至不想对每个函数都要求 require_once ...。我希望我可以在任何地方访问 $lang 数组...有什么想法吗?谢谢你
【问题讨论】:
-
您可以在会话中存储一个 $lang 变量,该变量将设置所需的文件。比如如果 $lang = eng,需要 lang/en/en.php,如果 $lang = fr,需要 lang/fr/fr.php。不要忘记默认值。