【问题标题】:How To Write To Javascript Object With PHP如何使用 PHP 写入 Javascript 对象
【发布时间】:2015-08-18 04:03:09
【问题描述】:

目前,我的前端网站使用托管在 Dropbox 上的 .js 文件作为“数据库”。它本质上是一个被调用然后使用的 Javascript 字典。这是格式。

myDictionary = {
"Tag1":["Tag1","info1","info2"],
"Tag2":["Tag2","info1","info2"],
...
...

}
myDictionary2 = {
"Tag1":["Tag1","info1","info2"],
"Tag2":["Tag2","info1","info2"],
...
...

}

我开始过渡到 PHP,我想知道是否可以在不搞砸的情况下向这本字典添加新条目。 基本上,我要问的是是否有一种方法可以将整体添加到 javascript 字典中,最好不要只添加文本,因为它可能会变得复杂。谢谢!

【问题讨论】:

  • 您可能想查看JSON format。它基本上是 JavaScript 对象表示法的一个子集,PHP 内置了对 encodingdecoding 的支持。
  • 我相信您正在寻找的术语是“序列化”,它是将服务器端对象转换为可以传递给客户端的字符串的过程。
  • 其实我只是希望能够动态地编辑文件,比如通过用户输入。问题不是真正获取信息,而是我如何将它添加到现在的字典中。

标签: javascript php dictionary


【解决方案1】:

是的,可以使用json_decode()json_encode()

<?php

$myDictionary = json_decode('{
    "Tag1":["Tag1","info1","info2"],
    "Tag2":["Tag2","info1","info2"]
}');

$myDictionary->Tag3 = ["Tag3","info1","info2"];

echo json_encode($myDictionary, JSON_PRETTY_PRINT);

输出:

{
    "Tag1": [
        "Tag1",
        "info1",
        "info2"
    ],
    "Tag2": [
        "Tag2",
        "info1",
        "info2"
    ],
    "Tag3": [
        "Tag3",
        "info1",
        "info2"
    ]
}

【讨论】:

  • 谢谢,这就是我要找的:)
  • @MathandScience - 如果它解决了您的问题,请不要忘记接受答案。 :)
  • 是的,提交后我要等2分钟
【解决方案2】:

首先:我强烈建议您使用JSON 来存储您的数据。然后使用 AJAX 加载文件并使用 JSON.parse() 解析其内容,得到生成的 JavaScript 对象。

您的示例可能如下所示:

[{
    "Tag1":["Tag1","info1","info2"],
    "Tag2:"["Tag2","info1","info2"]
},
{
    "Tag1":["Tag1","info1","info2"],
    "Tag2:"["Tag2","info1","info2"]
}]

然后你会像这样解析 JSON:

var dictionaries = JSON.parse(jsonstring);

至于您关于文件操作的问题,这需要通过 API 来完成。您将需要处理这个服务器端(在 PHP 中),因为您不想让客户端(或者实际上是世界其他地方)访问您的 Dropbox 帐户。这可能不像你想的那么简单。但是,通过这种方式,您可以验证您存储在文件中的内容是否有效,并且不会在其他人尝试访问(可能已损坏的)文件时造成混乱。

请参阅:Using the Core API in PHP

但是,我相信您真正想要的是一个简单的 JSON 数据库。快速搜索出现了TaffyDB。可能还有其他的。我没有使用 TaffyDB 的经验,但它看起来并不太难使用,并且被广泛使用。

但是,如果这是多人可能同时使用的东西,我强烈建议您投入所需的时间来制作一个好的,最重要的是 安全使用可靠数据库(MongoDBCouchDB 或任何其他基于文档的数据库)的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多