【问题标题】:PHP script doesnt execute after set_time_limit(0)在 set_time_limit(0) 之后 PHP 脚本不执行
【发布时间】:2018-01-21 06:05:46
【问题描述】:

我在我的一个 PHP 脚本中添加了 set_time_limit(0),我希望脚本调用 API 来获取详细信息,这很慢。

但是 PHP 脚本在我的 PHP 安装上的 set_time_limit(0) 之后不会执行。

提供更多信息。

如果我有这个脚本

<?php

echo "Hello I am here<br>";

set_time_limit(1);

echo "Hello I am still here<br>";

它回来了

Hello I am here
Hello I am still here

如果我有这个

<?php

echo "Hello I am here<br>";

set_time_limit(0);

echo "Hello I am still here<br>";

它不返回任何内容,但浏览器一直在旋转。

我有 OSX sierra,PHP 5.6 对调试的任何帮助都会很棒。

【问题讨论】:

  • 您需要发布更多信息。 API 调用需要多长时间?
  • 任何依赖无限超时的脚本都会被破坏。如果您需要一个长时间运行的脚本,请将其编写为 shell 脚本并使用 cron 或类似的东西执行它。在您的实例中,我会考虑执行 API 调用并在本地缓存您的网站能够使用的详细信息。 HTTP 服务器的资源有限,如果很多人同时触发那个长请求,它会有效地拒绝你的服务器。
  • wont execute 到底是什么意思?因错误而失败,死了,永无止境?
  • @Axalix 永无止境。

标签: php macos apache server php-5.6


【解决方案1】:

我找到了答案,但不确定为什么会这样。

我通过 brew 安装了 PHP,并安装了来自 http://php-osx.liip.ch/ 的捆绑版本。

这导致 set_time_limit 函数出现问题。但是,当我切换回来并使用二进制文件制作 php 时,问题似乎消失了。

仍然不确定第一次发生了什么。

【讨论】:

    猜你喜欢
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多