PHP意外终止脚本

时间:2015-07-13 19:24:59

标签: php

我在PHP工作并创建了一个包含许多PHP驱动元素的系统,我注意到我的一些页面停止显示使用echo命令生成的文本。

我举了一个小例子。当然,我的程序不应该只打印1到10000之间的所有数字,但是这个例子演示了脚本如何在没有任何警告的情况下终止。

示例代码:

<?php
    for ($i = 1; $i <= 10000; $i++) {
        echo $i, '<br>';
    }
?>

输出:

  

1
  2
  更多数字......
  8975
  8976
  8977
  8

造成这种情况的原因是什么?这是缓冲问题,我该如何解决?

3 个答案:

答案 0 :(得分:0)

您的代码在cli上运行完成的事实告诉我您的脚本超出了ini.max_execution_time运行时配置。

请注意,在链接文档中,cli上此配置的值为0,这意味着在该环境中运行时不会超时。

浏览器中的默认设置为30秒。

您可以在浏览器中显示当前设置:

echo ini_get('max_execution_time');

你应该能够通过以下方式增加它:

ini_set('max_execution_time', 0); // turns off timeout

答案 1 :(得分:0)

如果你向我们展示的剧本就像你描述的那样,那里发生了一些非常错误的事情。如果这是一个基于Unix或Linux的系统并且它反复表现出这种行为,那么内核就会终止脚本 - 除非它已被配置为不这样做,否则内核将强制进行核心转储。

要么构建一个新系统来运行您的代码,要么Google如何捕获和诊断操作系统上的核心转储。

<强>更新

如果xdebug报告该进程仍在运行,那么它可能没有转储其核心,但是&#34;不生成输出&#34; !=&#34;没有运行&#34;。这个过程处于什么状态?重定向输出时会发生什么?什么是端到端输出通道错误的时候?

答案 2 :(得分:0)

The problem did not lie directly with my PHP installation or the application itself, but somewhere in my IDE PHPStorm. When running the code with the same PHP interpreter outside of the IDE's wrappers, it all works fine. The procedures described by the many users here helped with that. Thank you.