Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 存储语言和样式。什么最好?文件或数据库(i18N)_Php_Database_File_Internationalization_Storage - Fatal编程技术网

Php 存储语言和样式。什么最好?文件或数据库(i18N)

Php 存储语言和样式。什么最好?文件或数据库(i18N),php,database,file,internationalization,storage,Php,Database,File,Internationalization,Storage,我正在为它启动一个事件跟踪系统,这可能是我的第一个PHP项目 我一直在根据我见过的软件(如vBulletin)设计它,我希望它有i18n和样式可编辑 所以我的第一个问题是: 知道这些东西可能是静态的,存储它们的最佳方法是什么。我一直在考虑用PHP获取文件内容,在文本编辑器中显示,保存后,替换旧文件。(如果以前从未编辑过,则复制一份,因此我们拥有“原件”)。 我认为这比使用MySQL和存储语言/样式要快得多 这里的安全怎么办?我应该创建.htaccess来请求此文件夹上的pw吗 我知道如何使用从数

我正在为它启动一个事件跟踪系统,这可能是我的第一个PHP项目

我一直在根据我见过的软件(如vBulletin)设计它,我希望它有i18n和样式可编辑

所以我的第一个问题是:

  • 知道这些东西可能是静态的,存储它们的最佳方法是什么。我一直在考虑用PHP获取文件内容,在文本编辑器中显示,保存后,替换旧文件。(如果以前从未编辑过,则复制一份,因此我们拥有“原件”)。 我认为这比使用MySQL和存储语言/样式要快得多

  • 这里的安全怎么办?我应该创建.htaccess来请求此文件夹上的pw吗

  • 我知道如何使用从数据库获取数组和使用strreplace($name,$value,$file)来为每个对象进行替换,但如果我将语言存储在文件中,我可以用它的内容创建一个关联数组(如JSON)


  • 非常感谢,抱歉问了这么多问题,我是新手

    这就是我在我的cms中所做的:

    • 对于我开发的每个插件/程序/实体(您可以命名),我创建一个/translations文件夹
    • 我把我所有的翻译都放在那里,比如el.txt、de.txt、uk.txt等所有语言
    • 我将翻译数据存储在JSON中,因为它易于存储,易于阅读,也便于每个人发布自己的翻译数据
    • 文件可以很容易地用UTF8编码到文件中,而不会弄乱数据库,从而可以在文件模式下读取它们。(只需
      JSON.parse
      它们)
    • 在安装这些插件时,我只需遍历所有的翻译并将它们放入数据库中,每一行使用每种语言。(等
      文本数据类型的数据列
    • 对于每个页面渲染,我只需查询一次数据库以获取这一行所选语言,然后调用
      json\u decode()
      以获得整个结果一次;然后将其放入$\u会话中,以便下次获取当前选定语言的flash speed翻译字符串
    整个开发过程同时考虑了性能和兼容性

  • 在HDD和DB上存储的好处是备份不会浪费那么多空间。一旦文件备份一次,第二天就不会占用磁带。然而,数据库每天都会得到完全备份,并占用越来越多的空间。将其写入磁盘的不利方面是,它增加了有人上传恶意内容的机会,他们可能足够聪明,知道如何执行它。你只需要更加小心,仅此而已
  • 是,使用.htaccess限制对可写文件夹的任何操作。在这种风险面前思考得很好
  • 你的方法听起来是个不错的策略。 祝你好运

  • 我会使用db,为什么你认为它会慢一些?db是为快速数据选择和检索而设计的。我不知道我的想法是,较小的查询最好,虽然我不知道(几乎什么)数据库,但我已经有一本关于数据库设计的书,几周后我将开始阅读。