【问题标题】:Can a PHP script be run regularly on a server without requests from a client?可以在没有客户端请求的情况下在服务器上定期运行 PHP 脚本吗?
【发布时间】:2011-01-02 18:58:18
【问题描述】:

我将编写一个脚本来将文本文档解析到 MySQL 数据库中。我将使用单独的实用程序将 PDF 转换为文本。这些 PDF 将通过电子邮件附件提交。

我正在寻找是否可以使用 PHP 来做到这一点,因为这是我最熟悉的服务器语言。第二个选择是 Perl,但我会采纳你的建议。

所以语言需要能够:

  1. 检查电子邮件帐户是否有带附件的电子邮件(每隔几分钟左右)。
  2. 保存附件。
  3. 使用正则表达式解析文件(查找联系信息)。
  4. 并将结果放入 MySQL 数据库中

我无法完全访问服务器,因为它将由 GoDaddy 或类似网站托管。

我对 PHP 很熟悉,但我想不出我会如何让它系统地检查邮箱。如果 PHP 做不到,是否有语言可以在服务器上持续运行而无需来自浏览器的请求来执行任务?

谢谢。

【问题讨论】:

标签: php mysql pdf


【解决方案1】:

您可以使用 PHP 脚本执行此操作,通过 cron job 进行管理。

【讨论】:

  • Cron 是要走的路,那么无论是 PHP、Perl 还是 sh 都无所谓。
【解决方案2】:

您可以使用http://www.setcronjob.com/ 等服务定期触发 HTTP 请求

【讨论】:

    【解决方案3】:
    【解决方案4】:

    Cron Job 是要走的路。另外,如果我可以提出建议,请确保将 PHP 脚本放在 Web 可访问目录之外并通过 CLI php 运行它。

    如果您的脚本放置在可从网络访问的目录中,则它可能会比预期更频繁地运行...尤其是如果机器人/爬虫掌握了它。

    【讨论】:

    • 谢谢。好主意。将文件放在 .htaccess 设置为 Deny From All 的文件夹中是否可以接受?
    • 是的。这应该足够了。还要更改文件的权限,以便在您的情况下 apache 无法访问它。更改所有者和权限,只有运行您的 cron 作业的用户才能执行它。
    【解决方案5】:

    如果没有客户端请求,PHP 本身无法自行执行任务。

    使用cron job 调度运行脚本(shell、perl、PHP、python.. 等)的常用方法。

    如果您在 IIS 上运行,那么您可以在 Windows 中使用Schedule Tasks

    【讨论】:

      猜你喜欢
      • 2010-11-23
      • 2011-12-23
      • 1970-01-01
      • 2021-06-15
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多