【问题标题】:PHP code to write a line before the last linePHP代码在最后一行之前写一行
【发布时间】:2012-10-24 01:10:41
【问题描述】:

对于我的 jQuery 日历,我需要编辑这行代码来插入一个新事件。

[
{"id":1, "start": new Date(year, month, day, 12), "end": new Date(year, month, day, 13, 35),"title":"Lunch with Mike"},
{"id":2, "start": new Date(year, month, day, 14), "end": new Date(year, month, day, 14, 45),"title":"Dev Meeting"},
]

如果最后一行不需要“]”,file_put_contents 会做得很好,所以也许有一种方法可以查找“]”并将其替换为:

{"id":3, "start": new Date(year, month, day, 14), "end": new Date(year, month, day, 14, 45),"title":"New Thing"},
    ]

另外,我的预订可以取消,所以我还需要找到一种方法来找到该特定行(按 ID 搜索)并将其删除,直到下一行...但是我该如何实现呢?
(此代码应在我预订或取消预订项目时触发。)

也许,如果这是可能的,这不是正确的方法吗?

如果我在网站的日历部分设置触发器会怎样:在创建日历视图之前,事件文件将填充数据库中的所有信息并保存,然后日历将显示所有事件。

但这对页面来说有多密集?如果数据库中有 1000 个预订,则每次检查日历页面时都必须一遍又一遍地创建 1002 行。这是个好主意吗?

我在这里有什么选择?哪一个是最好/正确的方法?

提前致谢。

【问题讨论】:

    标签: php jquery json calendar rewrite


    【解决方案1】:

    如果您没有太多数据,请调用 json_decode,添加您的内容,在更改的对象上调用 json_encode 以使其变为字符串并再次将其保存到文件中..

    通常:我会将每一行保存为一个 json 字符串,但不会全部保存在一个大对象中。因此,您只需每行有一个 json 对象:

    {date: "", [...]}
    {date: "", [...]}
    

    您可以在 fopen() 中使用“a”标志或在 file_put_contents() 中使用 FILE_APPEND 时附加条目。这是非常快的。要读取数据,遍历每一行并调用 json_decode()。这也更快。

    【讨论】:

    • 什么是“数据不多”? 1000 个预订(商品名称、商品品牌、序列号、描述、预订日期从和预订日期到)
    • 谢谢:)。但我想这不会是一个选择。
    • imo 你可以在 20 或 30 行上走得更高,现在服务器速度相当快——尽管这实际上取决于读取或写入文件的频率。特别是如果它需要并发。如果您需要并发,文件可能不是最佳选择。
    • 但我认为我的方式更好.. 特别是如果你最终有 5000 个日期或更多......那么 json_decode 真的很慢并且需要大量的内存,这可能是一个问题。
    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多