2010-07-29 77 views
0

对于一个项目,我需要安排几个PHP脚本。一些脚本有点复杂(例如,发送邮件,执行数据库内容,使用多个外部Web服务,使用外部文件和类等)。问题是这些脚本也需要从浏览器中调用,并且它们确实使用了$_SERVER阵列中的一些变量(包括HTTP_HOST)。
有没有办法让这些脚本在命令行中工作,还是我必须将它们重写为'命令行兼容'?还是使用命令行中指定不可用变量的参数更好?调度PHP脚本的最佳实践

我们有一台服务器运行Windows Server 2008

回答

2

你应该抽象脚本的一部分是常见的浏览器和命令行环境。然后你可以将它包含到两个脚本中,其中一个将使用$ _SERVER,另一个命令行参数变量来运行公共部分。

+0

这似乎是一个好主意,谢谢。 – 2010-07-29 11:18:49

+0

+1是一个好主意。 – 2010-07-29 12:15:00

+0

对我来说,缺点是使用$ _SERVER的块位于多个包含文件中。 – 2010-07-29 12:34:32

1

调度PHP脚本的最佳实践?

1)不要。这是一个滑坡 - 你最终花费太多时间试图将脚本组织到可用的时间段,最终导致一个系统根据哪些作业已经运行而没有改变状态。真的希望所有处理都直接响应用户请求而触发。 (这并不意味着他们必须同步工作并且与用户请求在同一执行线程中)。

2)不这样做的MS Windows中 - 微软的操作系统都提供图形用户界面不错,但没有

我见过的作业管理和自动化在其他操作系统上提供可用的工具范围很多情况下,人们只是因为代码的性能太差而将东西推入预定的批次中。在很多情况下,更好的解决方案是解决性能问题。尽管如此,既然您已经陷入困境,是的,您可以将所有代码复制到命令行和网络版本中 - 或者您可以下载wgetcURL并安排这些程序调用通过所需的URL值通过GET或POST

+0

对不起,不同意使用HTTP请求计划任务的方法。您可以让专门创建的控制器在命令行中运行,从而使需要最少输出的操作成为可能。 – foxtrot 2013-11-06 15:17:17