【问题标题】:Is there a way for shutting down pc using PHP有没有办法使用 PHP 关闭电脑
【发布时间】:2012-11-12 09:39:15
【问题描述】:

我有一个想法,我在 localhost 上运行了一个 php 本地网页

我想为 3 个按钮使用 GUI:关机睡眠重启

PHP 允许我进行这些操作吗?有没有准备好用PHP写类、方法?

【问题讨论】:

  • 您应该问自己,“PHP 是否适合这项工作?”点击start -> shut down会不会容易很多?
  • 我想学习 PHP 的强大功能和可用性,我想在 php 中提高自己:)
  • 查看 shell_exec() 函数。我认为您还必须使用 shell 脚本(接收函数调用)
  • system('shutdown -r now');

标签: php windows browser


【解决方案1】:

如果您的 Apache/PHP 配置设置为允许使用 system,那么您可以使用它。

对于 *nix 系统:

system('shutdown now');    // shutdown
// or
system('reboot');          // reboot
system('shutdown -r now'); // also reboot :)

对于 Windows:

system('shutdown -t -s 0'); // shutdown
// or
system('shutdown -r -t 0'); // reboot

More info here.

就 *nix 上的睡眠/待机而言,变化很大。


注意:您也可以使用shell_exec()exec()


编辑:

根据 user1597430 的评论,在 *nix 系统中,您可以传递 -h(停止)选项,该选项实际上会关闭并停止 CPU,但不会断开主电源。

system('shutdown -h now'); // shutdown and halt
system('shutdown -P now'); // shutdown and power off

服务器故障has some great answers here about this

【讨论】:

  • "shutdown -r now" - 我相信 -r 意味着在任何当代 *nix 上重新启动。 “立即关闭”是关闭。
  • 来自未来的你好,shutdown -h now 更好
【解决方案2】:

几乎所有语言都必须进行系统调用。

shutdown -s -t 0

这或多或少是灵丹妙药。例如,Java 可以这样称呼它:

public static void main(String arg[]) throws IOException{
    Runtime rt = Runtime.getRuntime();
    Process proc = rt.exec("shutdown -s -t 0");
    System.exit(0);
}

PHP 会是这样的

<?php
exec ('shutdown -s -t 0');
?>

但问题是 PHP 是一种解释性语言,由网络服务器编译,并由最终用户发出信号运行,因此这种行为可能很混乱。就像用电锯修剪指甲一样……

【讨论】:

    【解决方案3】:

    您可以从 php 调用 shell 脚本,该脚本将关闭、休眠并重新启动您的计算机,这可以在基于 linux 的机器上完成,但不确定是否可以在 Windows pc 上完成

    【讨论】:

    • 嗨,Pankaj,如果您提供一个示例,您的回答会更有用。
    【解决方案4】:

    您可以在 Windows 上使用 PHP 执行 .bat 文件。

    <?php echo exec('reboot.bat'); ?>
    

    .bat 文件的内容:

    关机示例:

    C:\Windows\system32\shutdown.exe -s -c "关闭计算机。"

    重启示例:

    C:\Windows\system32\shutdown.exe -r -c "正在重新启动以获取最新更新。"

    待机模式

    rundll32.exe powrprof.dll,SetSuspendState

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 2013-09-08
      • 2019-07-08
      • 2011-07-21
      相关资源
      最近更新 更多