使用PHP编辑.PHP文件

cod*_*nja 1 php

我有示例语言文件en.php

<?php

$language = array(
    "language_code" => "en",
    "language_name" => "English",


);
Run Code Online (Sandbox Code Playgroud)

这些语言文件替换模板文件中的某些内容以支持多语言.

有没有办法使用PHP将内容添加到数组中?
所以我在设置中做了一些事情,例如添加一个新的语言值,PHP将其添加到文件en.php并保存.

我想知道这是否可行,因为我猜它可能会非常复杂.如果可能的话,可以提出这样的建议.我没有太多编辑PHP文件的经验.

如果它会更好,我可以将语言格式更改为XML,如果这样可以更容易.

谢谢

phi*_*hag 5

不要将数据存储在PHP代码(或XML)中,而是使用JSON.加载数据:

$json = file_get_contents('en.json');
if ($json === false) throw new Exception('Cannot read file!');
$language = json_decode($json, true); // true tells json_decode to export as array ;)
Run Code Online (Sandbox Code Playgroud)

并存储它:

$json = json_encode($language);
if (file_put_contents('en.json', $json) === false) {
  throw new Exception('Can not store language');
}
Run Code Online (Sandbox Code Playgroud)

如果您真的坚持将数据存储为php程序,请使用以下var_export函数:

$phpCode = "<?php\n\n" . '$language = ' . var_export($language, true) . ';';
if (file_put_contents('en.php', $phpCode) === false) {
    throw new Exception('Can not store language');
}
Run Code Online (Sandbox Code Playgroud)

没有必要使用XML,因为它比JSON更慢,更复杂.此外,您通常不应将翻译存储在(关系)数据库中,因为往返时间和重复查询解析和评估可能会降低您的应用程序速度.