如何使用刷新 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
我写了一个 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