如何通过php通过shell使用刷新html头


how to use refresh html header through php through shell

我写了一个php脚本,它会自动刷新以完成一个漫长的过程。为此,我使用:

header('refresh: '.$refresh_time);

每次刷新之间的时间会根据发生的情况而变化

它在经典浏览器上运行良好,但我现在需要从shell执行此脚本。为了做到这一点,我尝试了:

php my_php_script.php

但这不起作用,因为它只执行了一次脚本(是的,这里没有刷新)。

那么,是否可以通过在命令shell中调用脚本来使用php中发送的头?

  • 如果是,请启发我的知识
  • 如果没有,就被干掉!!!!该死,我得更改我的代码

谢谢你的帮助!

您可以通过在php文件中使用shell命令来实现这一点。您可以使用以下代码,它将在shell中执行完全相同的操作。

$refresh_time = rand(2,10);
sleep($refresh_time);
$command     = "php my_php_script.php > /dev/null &";
shell_exec($command);

在Linux系统上,您可以使用cron。在Windows上,您可以使用Windows计划任务。

基本上,你可以告诉他们什么时候执行你的脚本。

在谷歌上搜索更多详细信息。

巧妙的部分是改变时间间隔,这对你没有多大帮助。如果我能找到同样的解决方案,我一定会告诉你的。

我回答了我的问题,但我要感谢大家提供的有用提示。

由于HTML头不能通过shell调用php来使用,所以我编写了一个脚本,发送刷新头并在再次调用php脚本之前休眠所需的时间。

#!/bin/bash
my_bash_function()
{
  response="$(curl -vs http://localhost/my_php_script.php) 2>&1"
  refresh_regex="refresh:[[:space:]]([0-9]+)'s*"
  numeric_regex="^[0-9]+$"
  if [[ "$response" =~ $refresh_regex ]] ; then
    refresh="${BASH_REMATCH[1]}"
    if [[ "$refresh" =~ $numeric_regex ]] ; then
      sleep $refresh
      my_bash_function
    fi
  fi
}
my_bash_function

这样,我就可以不更改php脚本,只需将其用作curl或php命令可以响应刷新头的命令。

我错了吗?

编辑:我错了!curl-我不接缝来正确执行php代码,而只是接缝头所需要的。curl-vs seams可以工作,但为了得到标题输出,我不得不添加2>&1

署名:Jigar,Pavan Jiwnani