2011-10-05 117 views
9

我的腳本中有一些任務是關於使用ffmpeg轉換視頻。我使用codeigniter 2.0.3來執行此操作,並在庫中找到腳本並使用shell_exec()運行ffmpeg。PHP忽略我的max_execution_time

我的php腳本有3個任務。

  1. 上傳文件
  2. 視頻轉換的FLV
  3. 生成Thumb
  4. 保存到數據庫中。

當我上傳文件時,我的php腳本開始轉換我上傳的視頻。但是,轉換結束時間大約超過5分鐘。它不會繼續產生拇指。與說

PHP Fatal error: Maximum execution time of 300 seconds exceeded in C:\AppServ\www\mis\application\libraries\my_video_utility.php on line 102, referer: http://localhost/mis/test/

我在php.ini中設置我max_execution時間,max_input_time設置等,以3600也在我的PHP腳本中加入set_time_limit()函數和set_ini()。但是,它仍然會出錯。

但是,當我上傳短視頻,其完成。

+0

您是否檢查過'phpinfo();'所有參數實際上是否已更改? – zerkms

+0

您是否在編輯php.ini後重新啓動php? – 2011-10-05 02:22:46

+0

這可能是託管公司阻止你這樣做嗎?有一個安全設置,不允許你改變某些主機喜歡使用的最大執行時間。我會嘗試找到設置名稱 – Ben

回答

17

好的。我這樣做我的自我。我已經聯繫了我的老師。 CodeIgniter沒有在文檔中包含這些內容。

在系統/芯線103/CodeIgniter.php

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

我試圖改變的價值和它的作品。

+1

這裏是提交https://github.com/bcit-ci/CodeIgniter/commit/f566af5ffb8f2e8d49bd0b206c6ee29c8bc35a78 – macki

2

解決方案改變set_time_limit()在CodeIgniter.php中的功能是有效的,但我認爲改變框架的核心文件並不是一個好主意。

我發現了另一個決定,你可以在你需要的地方打電話set_time_limit(),它將在CodeIgniter.php中重疊設置時間限制。

0

Codeigniter 2具有以300運行的set_time_limit函數。升級到Codeigniter 3後,有一件事開始失敗。查看這篇文章後,我意識到set_time_limit調用在3中被刪除了,所以你可能不得不在接受的答案中添加代碼來解決你的特定問題代碼。我不建議將它添加回Codeigniter.php