PHP运行循环不断直到得到=停止
问题描述:
我试图打开/关闭Raspberry pi继电器像一个频闪,但我似乎无法停止while循环,页面加载,并且继电器开始脉冲,但我无法阻止它。唯一的方法是停止整个Web服务。PHP运行循环不断直到得到=停止
这里是我的代码:
<?php
if($_GET['type'] == 'switch') {
$output = shell_exec('gpio mode '.$_GET['pin'].' out');
$output = shell_exec('gpio write '.$_GET['pin'].' '.$_GET['status']);
}
if($_GET['type'] == 'blink') {
while(1) {
\t \t $output = shell_exec('gpio write 1 0'); \t
\t \t sleep(0.1);
\t \t $output = shell_exec('gpio write 1 1'); \t
\t \t break;
\t
\t
\t \t }
}
?>
答
你休息;语句不会停止while循环,它只会从循环中断开,然后再次检查while条件。
我建议给它一个条件,而不是1
while (led == 'on')
{
//Your code
if (when you want it to stop)
{
led = 'off';
}
}
而且,只是个人建议。您的页面永远不会停止,因为代码将始终运行。你可以做的是运行一个控制led的文件。这样,您的页面就可以停止运行,并且可以通过pi上的程序而不是网站上的程序运行。因此,你的代码将检测到“开始”或“停止”变量,如果它被设置,那么它将运行“start_led”程序。
如果您这样做,请务必在启动另一个控件之前终止控制LED的过程。在你的“start_led”程序中,你可以使用ps -aux | grep“start_led”,然后使用kill命令停止该程序的运行。
那么,你需要给它一个条件停下来。你想要什么? X闪烁后? X秒后?后...? – ishegg
我需要它停止,当我发送停止=停止到该PHP页面。我通过移动应用发布到该网址,我需要马达持续脉动,直到Said Stop var发送到页面 – SARUAV