缓存 PHP 简单 HTML DOM 解析器
我正在使用 PHP HTML DOM 解析器 从外部网站提取数据。为了减少负载并加快页面渲染时间,我想将提取的数据缓存一段时间。我该怎么做?
I am using the PHP HTML DOM Parser to pull data from an external website. To reduce load and speed up page rendering time I want to cache data I pull for a certain period. How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我编写了这个文件缓存函数,它基本上只是替换 file_get_contents。您可以在
$offset
中指定缓存应持续的时间量,或使用$override
完全覆盖缓存。如果您不想使用 /tmp/,只需将该目录更改为您可以读/写的目录即可。I wrote this file cache function which basically just replaces file_get_contents. You can specify the amount of time the cache should last for in
$offset
or completely override the cache with$override
. If you don't want to use /tmp/, just change that directory to something you can read/write to.您可以使用 HTML 创建本地文件,然后跟踪 $SESSION 中的文件路径。如果您有磁盘空间并且可以运行数据库,则可以使用数据库来做同样的事情。数据库连接和对您要查找的 URL 的查询根本不会增加太多开销。
You could create local files with the HTML and then keep track of the file paths in the $SESSION. If you have the disk space and can run a database, you could use a database to do the same thing. A database connection and query on the URL you're looking for won't add much overhead at all.
一种方法是将数据保存到数据库或本地文件中。然后,您可以使用时间戳列或文件修改时间来确定是继续使用缓存还是提取并保存新副本。
如果您可以访问某种内存缓存(例如memcached),那将是理想的选择。
One way would be to save the data to a database or local file. You could then use a timestamp column or file modification time to determine whether to continue using the cache or pull and save a fresh copy.
If you have access to some kind of memory caching (e.g. memcached) that would be ideal.