【问题标题】:How to stop PHP Script? [duplicate]如何停止 PHP 脚本? [复制]
【发布时间】:2015-01-08 06:55:57
【问题描述】:

我写过这样的 PHP 代码:

<?php
    $i=0;
    while($i<100) {
       mail("xxxxxxx@gmail.com","SPAM","It´s ".date("d.m.o H:i:s");
       $i++;
    }
    echo "DONE!";
?>

我已将其保存在网络服务器目录中。我通过浏览器启动它。 执行期间如何停止脚本?

最好的问候;)

【问题讨论】:

标签: php apache email loops while-loop


【解决方案1】:

如果您使用的是 UNIX 系统,请执行以下操作:

ps aux | grep php
它将列出作为 php 实例的所有正在运行的进程。如果您的脚本名为 myscript.php,那么当它运行时,您应该会在此列表中看到 php /path/to/myscript.php。

现在你可以通过命令kill -9 PID杀死它

如果您在 Windows 上运行,则不能(除非您可以手动调出任务管理器),并且如果您只有 Web 浏览器访问服务器并且您再次通过 Web 服务器运行脚本,则可以'杀掉进程。无论哪种方式运行一个无限循环脚本而不能在命令中杀死它都是一个坏主意。

参考how detect stop or running a php script from out and background

【讨论】:

  • 为什么是-9?我会给脚本一个清理的机会。
【解决方案2】:

退出(0);或者死();或中断;你可以使用任何一个。

<?php
$i=0;
while($i<100) {
   mail("xxxxxxx@gmail.com","SPAM","It´s ".date("d.m.o H:i:s");
   exit(0);
   $i++;
}
echo "DONE!";

?>

    output: 0   //script is stop after printing 0.

【讨论】:

    【解决方案3】:

    您可以将exit()die() 用于这些目的。但是对于您的示例,这并不是必需的,因为脚本在运行后会自行中止。

    【讨论】:

    • 您想收到 100 封电子邮件,每封都告诉您时间吗?
    猜你喜欢
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    相关资源
    最近更新 更多