我有一个包含以下代码的 exe 文件:
同时(1)
printf("你好\n");
我正在使用 shell_exec 通过 php 执行这个 exe
$output = shell_exec('C:/Users/thekosmix/Desktop/hello.exe 2>&1');
echo $output;
现在脚本执行了很长时间,直到我从任务管理器中终止进程并给出 fatal error :
( fatal error :第 7 行 C:\xampp\htdocs\shell\index.php 中允许的 134217728 字节内存耗尽(尝试分配 133693440 字节))
我希望脚本(或此函数)在给定的持续时间内运行并打印在持续时间内生成的任何输出,而不是任何 fatal error 。 set_time_limit() 也没有解决问题。
最佳答案
您不能在 PHP 中执行此操作 - set_time_limit()
仅在执行每个 PHP 语句后才检查。在 Linux 下,您会使用 ulimit
,但看起来您使用的是 Windows。
您需要修改 hello.exe
可执行文件以在超时中构建,或者编写一个从 PHP 调用的包装器,它调用 hello.exe
并处理超时。在任何可以轻松 fork 的语言中,这都是微不足道的。
关于php - 限制 shell_exec 的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10292089/