gpt4 book ai didi

php - 如何使用 cron 每天执行一次查询并将结果输出到平面文件?

转载 作者:可可西里 更新时间:2023-11-01 07:50:47 28 4
gpt4 key购买 nike

我有一个 PHP/MySQL 网站,我想在主页上输出数据库/表中的条目数,但我不想每次都进行此查询用户点击主页。我希望它每天自动运行一次并将查询结果输出到一个平面文件,然后我可以只包含该文件。我认为这应该会减少一些负载。

我以前从未做过 cron 作业,也不是很熟悉 Unix 系统/命令。我的站点与 ISP 合作,该 ISP 具有 Plesk 控制面板,我看到一个“crontab”部分,它允许我设置 cron 作业。

我不太确定要输入什么“命令”。我可以很好地制定查询,但不确定如何将结果输出到我可以通过 PHP 包含的平面文件。此外,理想情况下,平面文件会出现在 Web 根目录(与网站的其余部分一起)并每天 self 覆盖,我不想在年底以 365 平面文件结束。

最佳答案

您应该编写一个独立的 PHP 脚本来完成所有工作,然后像这样将它添加到您的 crontab 中:

0 2 * * * cd /path/to/script; /usr/bin/php daily.php 1> output.txt 2> errors.log

每凌晨 2 点,您的 daily.php 脚本将运行,输出在 output.txt 中,生成的任何错误(保持 display_errors 打开)将在 错误日志。与将查询直接放入 cron 相比,这有一些优势:

  • 您不需要将 mysql 连接详细信息放入 cron
  • 如果需要,您可以包含网站的任何 PHP 包含文件
  • 您可以独立测试脚本,而无需等待 cron 运行它。

在 PHP 页面中包含数据的最简单和最安全的方法可能是 serialize()查询结果数组,然后在需要时对其进行反序列化():

// daily.php
$data = array(
'rows_in_table_foo' => 2343, // replace this with a query result
'rows_in_table_bar' => 4321, // replace this with a query result
);
echo serialize($data);
exit 0;

...并阅读它...

// index.php
$data = unserialize(file_get_contents('output.txt'));

关于php - 如何使用 cron 每天执行一次查询并将结果输出到平面文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/508234/

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