“运行”一个PHP文件

时间:2012-06-08 00:04:22

标签: php windows scheduled-tasks

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

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

2 个答案:

答案 0 :(得分:3)

假设您使用默认设置安装PHP,PHP文件夹应位于PATH变量中。在这种情况下,您只需运行命令php filename.php

如果没有,你将不得不将命令指向安装PHP的地方,也许类似于"C:\Program Files\PHP\php.exe" filename.php - 无论哪种方式,你所做的就是在文件上调用PHP二进制文件。

答案 1 :(得分:1)

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

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