如何使用PHP设置CRON并在它的帮助下运行php文件?

时间:2012-11-09 10:47:20

标签: php cron crontab cron-task

我有两个php文件。在一个php文件中有一个简单的html表单,其中我创建了一些下拉选项时间和天数cronjob当用户设置时间和日期并提交表单然后存储在数据库中的所有下拉值。

现在借助这些存储的值我需要设置cronjob,当cron执行时,它会运行另一个php文件,我在其中编写一些生成xml文件的代码。 每当用户在数据库中存储哪个时间时,该文件就会运行。

通过使用Cpanel我可以做到,但我不想使用cpanel。

请给我一些正确和有效的解决方案,我真的需要它。 提前致谢。

1 个答案:

答案 0 :(得分:0)

使用phps system()exec()函数调用crontab命令来替换或修改Web服务器运行的帐户的现有crontab。您可能必须确保允许用户使用cron系统,这取决于您使用的操作系统。

从crontab中你可以使用两种策略之一来运行php脚本_   - 像任何正常的命令一样调用php cli解释器,如下所示:/usr/bin/php并给它解释脚本。作为替代方案,您还可以在php脚本中使用shebang并将其称为简单可执行文件。   - 当您要在Web服务器中执行脚本时,使用wget调用指向您的Web服务器(可能是localhost)的URL。

这可能是您尝试的起点:

#!/usr/bin/php
<?php
// the time tokens to be fed into the crontab line
$time=array('10','*','*','*','*');

// the actual command to be executed
$command=sprintf("crontab -l | (cat;echo \"%s\t%s\") | crontab", 
                 implode(' ',$time), 
                 '/usr/bin/beep');

// execute command
$result=system($command);

// output result of execution
if ($result)
  echo "Result: $result\n";
else
  echo "FAILURE!\n";
?>

从CLI调用时适用于我。