gpt4 book ai didi

php - 双语网站CMS结构——mysql、php数组、 session 、效率?

转载 作者:行者123 更新时间:2023-11-29 08:17:25 25 4
gpt4 key购买 nike

我创建并管理了一个双语网站。迄今为止,我已经使用了一个使用 GET lang 变量的 session ,并包含了一个基于该变量的 lang 文件。我的 lang 文件是一个简单的 php 数组,其中键为 home_h1、home_p1,然后将文本作为值。

它使我的实际页面看起来非常干净和简短,而且我在维护它方面没有任何问题,因为我通常可以自己将英语翻译成西类牙语,只需更改其他语言文件即可。 (两个文件中的 key 显然是相同的)

我没有时间再维护这个了。所以我想构建一个 CMS 供翻译人员使用。希望他们能够同时编辑两种语言。计划是建立一个包含以下键的数据库表:id、description、page、paragraph_no、English、Spanish。如何保留当前系统,但在 CMS 中使用新的数据库表?我可以使用 php 编写一个新的 php 文件,其中包含一个带有描述键的数组(描述必须是主键吗?)和英语/西类牙语翻译,因此与我当前的格式匹配?

我所要做的就是替换适当目录中的新 lang 文件。我从未使用 php 编写过文件,所以这对我来说是新的。我也完全接受其他建议,这正是我认为最快的(顺便说一句,我不想​​使用查询来获取文本,我认为我的网站上有太多文本,我会假设一个数组在包含的文件中要快得多。

--编辑--

我一直在 stackoverflow 上研究这个问题,有人提到使用我刚刚概述的方法,编写 php 文件然后包含它们,但答案缺少如何,这是我不知道的知道。我正在根据需要学习 php,stackoverflow 是我的库,当然还有 php 库。谢谢!

最佳答案

我不会让 PHP 读取和写入文件,它效率低下并且可能会导致各种问题。如果写入一半文本文件时服务器崩溃怎么办?您的网站已损坏。

如果您正在构建 CMS,那么您不妨继续愤怒地使用 MySQL 数据库。如果您有包含字符串的文本文件,那么在创建其结构后,您只需将它们批量导入到数据库中即可。

至于数据库结构,我建议是这样的:

  • 一个 pages 表,具有自动递增主键列
  • languages 表,其中包含您的网站要翻译的语言(最初是英语和西类牙语)
  • pages_languages 表是一个查找表。每页每种语言都有一条记录。因此,如果有两种语言,那么每页就会有两条记录。

我有一个查找表的原因是,这样你的网站就可以扩展。您现在可能只有两种语言,但假设您的网站越来越受欢迎,然后您决定要将网站翻译成其他语言(例如法语和德语),那么您所需要做的就是在 languages 表中添加一条记录,然后记录每个页面。

对于 CMS,编辑页面时只需为每种语言设置一个文本区域或富文本字段即可。当您保存时,您有两个选择:

  1. 删除该页面 pages_languages 表中的每条记录,并插入新记录;
  2. 或者,如果您想维护页面内容的“修订”,只需插入新值,然后在前端查看页面时,只需提取与请求的页面和指定语言匹配的最新记录即可

希望这有帮助。如果您对上述内容有任何疑问,请告诉我,因为我意识到这是一个相当高层次的观点,而且我很快就即兴写下了它。

关于php - 双语网站CMS结构——mysql、php数组、 session 、效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com