php - 限制 shell_exec 的执行时间

标签 php fatal-error shell-exec

我有一个包含以下代码的 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/

相关文章:

php - elasticsearch:搜索词的一部分

php - 带有文本的自动高面板主体

php - 如何从 PHP 中该类的父类确定类文件的文件的服务器路径

mysql - php-fpm 无法连接到 mysql

crud - Symfony 2 CRUD 命令出现 fatal error

PHP - 浏览器中的 shell_exec 输出为空

php - Woocommerce - 外部/附属产品图片和外部链接的标题(新标签)

php - CodeIgniter 缓存驱动程序忽略备份适配器

"%x{something}"的 Ruby 不同结果,其中 "something"带引号或不带引号

php - shell_exec 不为 inkscape 命令执行 sh 文件