首页  >  文章  >  后端开发  >  如何在受控的内联网环境中通过用户界面使用 PHP 执行外部程序?

如何在受控的内联网环境中通过用户界面使用 PHP 执行外部程序?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-21 08:20:03957浏览

How to Execute External Programs with PHP with User Interface in a Controlled Intranet Environment?

使用 PHP 启动外部程序:解决 System 和 Exec 的问题

在受控的 Intranet 环境中,从 PHP 应用程序执行外部程序可能是一个挑战。虽然 system 和 exec 等命令可以启动进程,但它们在使用可见的用户界面处理程序时面临困难。

问题:

用户能够启动以下程序:静默操作(例如,“echo hello > hello.txt”)。但是,尝试使用图形用户界面(例如“资源管理器”)启动程序不会导致任何操作。

解决方案:

要解决此问题,请执行以下操作:允许运行 PHP 脚本的 Apache 服务与桌面交互所必需的:

  1. 在 Windows XP 计算机上打开服务控制面板 (services.msc)。
  2. 找到 Apache服务(例如“wampapache”)并打开其属性。
  3. 转到“登录”选项卡并选择“允许服务与桌面交互”。
  4. 停止并重新启动 Apache 服务.

代码片段:

进行这些更改后,您现在可以使用 pclose 和 system 从 PHP 启动 GUI 程序:

非阻塞:

<code class="php">pclose(popen("start /B notepad.exe", "r"));</code>

阻塞:

<code class="php">system('start notepad.exe');</code>

注意:

这个解决方案在 Windows XP 上进行了测试,可能不适用于其他 Windows 版本。

以上是如何在受控的内联网环境中通过用户界面使用 PHP 执行外部程序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn