如何使用刷新 html header 到 php 到 shell

how to use refresh html header through php through shell

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

header('refresh: '.$refresh_time);

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

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

php my_php_script.php

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

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

感谢您的帮助!

在Linux系统上,可以使用cron. And on Windows, you can use windows schedule task

基本上你可以告诉他们什么时候执行你的脚本。每分钟、每天、每周等

在 Google 上搜索更多详细信息。

棘手的部分是更改时间间隔,这对您帮助不大。如果我找到相同的解决方案,一定会通知您。

您可以通过在 php 文件中使用 shell 命令来实现您可以使用以下代码,它将在 shell.

中执行完全相同的操作
$refresh_time = rand(2,10);
sleep($refresh_time);
$command     = "php my_php_script.php > /dev/null &";
shell_exec($command);

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

由于 HTML headers 不能通过调用 php 使用 shell,我写了一个脚本来发送刷新 header并在再次调用 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 命令即可响应刷新 header.

我错了吗?

编辑:我错了! curl - 我不接缝以正确执行 php 代码,但只执行 header 需要的代码。 curl -vs seams 可以工作,但要获得 header 输出,我必须添加 2>&1

致谢:Jigar、Pavan Jiwnani