gpt4 book ai didi

php - 自动化 PHP 脚本

转载 作者:可可西里 更新时间:2023-11-01 08:04:03 24 4
gpt4 key购买 nike

作为数据导入的一部分,我创建了一个在网络服务器/本地主机上运行的 PHP 文件,用于将数据从 CSV 源文件输入到数据库中。问题是这个页面需要手动打开,所以本质上就像运行它背后的实际 MySQL 脚本一样。

如何在没有“人工”交互的情况下添加此文件以每天在服务器上的特定日期运行。

我尝试了其他一些解决方案,例如:在 Task Schedular 中启动 PHP,然后使用参数运行它-f C:\Apache24\htdocs\my_phpfile.php

但是,这似乎没有执行 PHP 文件,因为在查看表中的信息时它没有更新。我知道 PHP 文件有效,因为我已通过浏览器手动运行它。

请问我能得到一些建议/帮助吗?做这个的最好方式是什么?

我目前正在我的 Windows 10 笔记本电脑上测试环境,但最终它将在 Windows 2012 Server 上运行。

谢谢。

最佳答案

你可以在 Task Scheduler 中运行 php 脚本(我经常这样做)但要注意以下几点:

你运行它作为 php C:\Apache24\htdocs\my_phpfile.php

PHP 必须在您的 PATH 中,否则您需要直接指向它:

c:\php\php C:\Apache24\htdocs\my_phpfile.php

像这样运行它是在 CLI 模式下运行,而不是 Web。当您在 Apache 中点击脚本时,环境与 CLI 大不相同。由于环境的不同,您的脚本可能无法按预期运行。例如

  • 当前目录不同,
  • 没有 $_SERVER 变量,
  • $_ENV 会有所不同,
  • 没有.htaccess,
  • 用户会有所不同,因此文件访问权限也会不同
  • 加载的模块可能不同
  • PHP.ini 甚至可能不同

要在 CLI 中对其进行测试,只需打开 PowerShell 或 CMD 提示符,然后输入与 WTS 相同的命令行。您可能会看到一些通知您问题的输出。

查看您的 php_errors.log 以了解 Task-Scheduler 运行实例失败的原因。

如果你不能让脚本在 CLI 模式下工作而必须在 Web 模式下运行它,你可以使用 wgetcurl 或类似的,甚至使用 Internet Explorer 的命令行选项。

或者使用http://SetCronJob.com或类似服务。

这里有很多选项 - 我心目中的“最佳”是最简单的(KISS 原则):直接在 CLI 中运行 PHP。不会出错,你不是为了加载 PHP 而启动 Apache(这是一种巨大的浪费),你不依赖网络连接,你不依赖第 3 方(付费)网络服务,你是没有 IE 被更新的风险! WTS 也很可靠(无论如何在 Windows Server 上)。

关于php - 自动化 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38634272/

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