0

我认为这必须是一个非常简单的问题,但我没有为我想要完成的事情找到任何答案。

我有一个将发送电子邮件的 PHP 文件。这部分有效。问题是,我需要这个 PHP 文件每 5 分钟“运行”一次。我的问题不在于日程安排,我很确定我知道该怎么做。我的问题是 PHP 文件的“运行”。我的脑海中完全没有关于如何“执行”PHP 文件的任何信息,而不仅仅是让它在浏览器中打开并到处吐出它的代码。我知道这个 PHP 文件有效,因为当我在 Dreamweaver 中处理它时,我单击“发现”链接,其中显示“此文档的动态相关文件可能已更改,应该由服务器重新发现”它执行这个 PHP 文件,我收到了我的电子邮件。我试过通过这样的命令但它所做的只是吐出 php 代码,就好像我在浏览器中运行它一样。实际上什么都没有发送。有什么方法可以改变 PHP 文件本身的格式化方式,使其能够做到这一点?当我单击“发现”使其工作时,Dreamweaver 正在做什么?我觉得这应该是一件简单的事情,而且我不理解它的疯狂......

4

2 回答 2

3

假设您使用默认设置安装了 PHP,PHP 文件夹应该在您的 PATH 变量中。在这种情况下,您所要做的就是运行命令php filename.php

如果没有,您必须将命令定向到安装 PHP 的位置,可能类似于"C:\Program Files\PHP\php.exe" filename.php- 无论哪种方式,您所做的只是在文件上调用 PHP 二进制文件。

于 2012-06-08T00:10:49.243 回答
1

你有选择。如果它是您可以通过浏览器访问的网页(并且按照您的预期发送电子邮件),您可以每五分钟通过 HTTP 请求该页面。就我个人而言,我会使用 cURL(例如curl.exe http://localhost/myfile.php)来做到这一点。您可以在此处找到 Windows 二进制文件。你也可以使用 PowerShell 什么的。

如果这不是一个网页,或者如果您只是不想走这条路,您可以通过 PHP 的命令行界面 (CLI) 执行 PHP,正如您已经知道的那样。C:\path\to\php.exe myfile.php将执行您的代码并将输出吐出到 STDOUT。如果除了发送电子邮件之外一切正常——我猜你正在这样做mail——问题可能出在你的 PHP 配置上。默认情况下,PHP 在这些位置查找 php.ini 文件。您还可以明确告诉 PHP CLI 使用哪个 php.ini 文件和-c选项(例如,php.exe -c C:\path\to\php.ini myfile.php)。当然,您需要在 php.ini 中正确配置所有内容才能发送邮件。这在 Windows 上可能比在可用的普通 Linux 机器上要复杂sendmail一些。

于 2012-06-08T00:19:31.967 回答