PHP忽略我的max_execution_time

时间:2011-10-05 02:12:55

标签: php codeigniter ffmpeg

我的脚本中有一些关于使用ffmpeg转换视频的任务。我使用codeigniter 2.0.3执行此操作并在库中找到脚本并使用shell_exec()运行ffmpeg。

我的php脚本中有3个任务。

  1. 上传文件
  2. 将视频转换为.flv
  3. 生成拇指
  4. 保存到数据库。
  5. 当我上传文件时,我的php脚本开始转换我上传的视频。但转换结束时间超过5分钟。它不会继续产生拇指。它的说法

      

    PHP致命错误:第102行的C:\ AppServ \ www \ mis \ application \ libraries \ my_video_utility.php超出了300秒的最大执行时间,引用者:http://localhost/mis/test/

    我已经在php.ini中将我的max_execution时间,max_input_time等设置为3600,并在我的php脚本中添加了set_time_limit()和set_ini()。但是,它仍然会出错。

    但是,当我上传短视频时,已完成。

3 个答案:

答案 0 :(得分:19)

确定。我自己这样做。我联系了我的老师。 CodeIgniter有一些东西不包含在他们的文档中。

在system / core / CodeIgniter.php的第103行

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);
}

我尝试更改该值并且有效。

答案 1 :(得分:2)

在CodeIgniter.php中更改set_time_limit()函数的解决方案是有效的,但我认为更改框架的核心文件并不是一个好主意。

我找到了另一个决定,你可以在你需要的地方拨打set_time_limit(),它将在CodeIgniter.php中重叠设置时间限制。

答案 2 :(得分:0)

Codeigniter 2的set_time_limit函数运行300.升级到Codeigniter 3后,有一件事开始失败。在查看这篇文章之后,我意识到set_time_limit调用已在3中删除,因此您可能必须在您的特定问题代码的已接受答案中添加代码。我不建议将其添加回Codeigniter.php