0

作为CMS的一部分,我正在使用PHP将LaTeX渲染为png,我需要某种简单的缓存机制,因为服务器需要大约2秒来渲染png。我获取原始 TeX 并通过 md5 函数运行它,然后将散列与当前时间戳一起插入到数据库中,并使用 <hash>.png 作为文件名。每次访问图像时,时间戳都会更新。

4

4 回答 4

2

对于这种情况,我更喜欢使用磁盘上的临时目录。

根据要求:

if the file doesn't exist
    render it to the file
fpassthru() the file from disk
于 2009-02-25T22:03:35.030 回答
1

这听起来不错。如果您可以将 .png 的名称更改为数据库 ID 甚至哈希本身,以便图像也可以缓存在客户端。

于 2009-02-25T22:03:13.377 回答
0

嗯,我认为这是一个很好的方法,但您可能希望在散列之前对 LaTeX 进行一些额外的处理。否则,空格的变化(可能还有评论和其他一些东西,取决于你的输入法)会导致不同的哈希值。

另外,更新时间戳的目的是什么?作为删除长时间未访问的 PNG 的批处理方法的一部分?

于 2009-02-25T22:01:58.480 回答
0

如果 .png 在渲染后可能会发生变化,我想你也应该在 .png 更新时使用某种观察来解释这一点(检查线程,设置方法来更新最后修改的键,或其他东西: ) )

于 2009-02-25T22:06:54.163 回答