【问题标题】:how to run php script automatically every minute without access to that page?如何在不访问该页面的情况下每分钟自动运行 php 脚本?
【发布时间】:2013-09-12 23:30:45
【问题描述】:

我正在开发网站,当用户注册到我的网站时,它会自动向用户发送电子邮件。我从网上搜索过,他们中的大多数人都说我必须使用 cron 工作;我现在最大的问题是关于 cron 工作。我不知道如何编写它以及如何执行它。谁能给我一些例子吗?

提前致谢。

【问题讨论】:

  • 如果您使用的是共享主机,您可能无法运行 cron 作业。相反,您可以直接从注册脚本发送电子邮件 - 当您甚至可能没有任何访问者时,无需通过每分钟运行一次 cron 来阻塞服务器资源。

标签: php cron


【解决方案1】:

如果我们假设您要运行的脚本位于 /home/me/myscript.php,那么您需要做的就是创建一个每分钟运行该脚本的 cron 作业。

几家托管公司都有一个界面(例如 cPanel),可让您轻松添加 cron 任务。您还可以通过编辑相关的 cron 作业并添加以下内容来添加 cron 任务:

*/1 * * * * /usr/bin/php /home/me/myscript.php > /dev/null

【讨论】:

    【解决方案2】:

    如果您想在用户注册后向用户发送确认电子邮件,您可以使用 php 邮件功能来执行此操作。

    http://php.net/manual/en/function.mail.php

    【讨论】:

    • 对于发送 HTML 电子邮件等更高级的功能,Swiftmailer 可能是更好的选择。
    【解决方案3】:

    您可以创建一个包含心跳事件的 PHP 文件。您可以使用具有所需时间间隔的usleep 函数将其置于睡眠状态,并且您可以拥有要执行的任务列表(心跳任务),知道时间规则(它们应该何时运行,多久运行一次等),并且您的 heartbeat.php 将在每次睡眠后检查应该执行哪些任务并执行它。你可以在你的服务器上运行这个 heartbeat.php。

    但是,我看不出您需要 cron 作业、心跳或任何定期解决方案的原因。为什么不在需要发送邮件的时候使用 php 函数发送邮件呢?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 2011-09-10
      相关资源
      最近更新 更多