【问题标题】:PHP, kill Windows process?PHP,杀死Windows进程?
【发布时间】:2012-06-13 22:29:05
【问题描述】:

有没有办法在不使用 exec 的情况下使用 PHP 杀死 Windows 进程,比如 calc.exe

exec 调用外部程序,除非必要,否则我尽量避免使用该命令。

【问题讨论】:

  • 如果没有其他选择,可以使用PHP中的系统调用。只需确保您未污染调用中包含的任何用户输入。

标签: php windows kill-process


【解决方案1】:

有。

使用W32api PHP 扩展,它提供对 Win32 API 的访问 - 然后在获取进程句柄后使用 TerminateProcess() API。

【讨论】:

  • AFAIK 来自 windows.php.net 的 PHP 官方版本已编译扩展
  • 原来的问题是“有没有办法杀死一个 Windows 进程”
【解决方案2】:
  1. 在 PHP 源代码(纯 C)中定义新函数
  2. 用定义的函数编译你的新PHP版本
  3. 调用您在 PHP 源代码中定义的新函数

PS

通过这种方式,您可以使 PHP 能够使用 __asm { } 插入/添加一些内核代码,如果您愿意的话...

【讨论】:

    【解决方案3】:

    不,没有。 PHP 几乎无法访问系统,除非通过exec

    【讨论】:

    • 是的,但如果你使用 calc.exe 关闭 fopen ,我会印象深刻 ;-)