限制shell_exec的执行时间

the*_*mix 5 php shell-exec fatal-error

我有一个 exe 文件,其中包含以下代码:

同时(1)

printf("你好\n");

我正在使用 shell_exec 通过 php 执行这个 exe

$output = shell_exec('C:/Users/thekosmix/Desktop/hello.exe 2>&1');

回声$输出;

现在脚本执行了很长时间,直到我从任务管理器中终止进程并给出致命错误:

(致命错误:第 7 行 C:\xampp\htdocs\shell\index.php 中允许的内存大小为 134217728 字节(试图分配 133693440 字节)

我希望脚本(或此函数)在给定的持续时间内运行,并打印在持续时间内生成的任何输出,而不是任何致命错误。set_time_limit() 也没有解决问题。

Cal*_*Cal 3

您不能在 PHP 中执行此操作 -set_time_limit()仅在执行每个 PHP 语句后进行检查。在 linux 下你会使用ulimit,但看起来你正在使用 Windows 。

您需要修改hello.exe可执行文件以构建超时,或者编写一个从 PHP 调用的包装器,该包装器调用hello.exe并处理超时。在任何可以轻松分叉的语言中,这都是微不足道的。