作者buganini (霸格尼尼)
看板PHP
標題[閒聊] ignore_user_abort()
時間Sat May 19 05:41:35 2007
ignore_user_abort()
這函式似乎很少看到...
以前也沒用過
但今天用上了
事情是這樣發生的...
弄了一個空間
讓人用FTP上傳檔案
Web部分,作檔案瀏覽的介面
對於圖檔/視訊檔,作縮圖,並且視訊檔會轉成flv提供線上播放
作縮圖和轉flv都是<img src="thumb.php?file=...">
轉檔的動作都寫在thumb.php裡
用exec()執行外部程式
mencoder
ffmpeg
imagemagick
之類的
其中視訊檔的縮圖,是先用
mencoder轉flv
再用ffmpeg從flv弄出jpg
但發現有的大一點的視訊檔
圖檔會生不出來
去翻存那些轉出來檔案的資料夾
發現只有flv
原因是
轉flv時轉檔轉太久
timeout後(或完成前使用者離開這一頁)browser放棄了,並告訴server不要檔案了
然後這個php沒執行完就被中斷了
所以弄出jpg檔的動作沒做到
後來用以下兩行解決
ignore_user_abort(true);
set_time_limit(0);
ignore_user_abort()可以讓php不會被中斷
於是一系列動作都會乖乖的執行完
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.122.162
※ 編輯: buganini 來自: 140.113.122.162 (05/19 05:43)
推 foxzgerald:cool! 透過這函式應能寫出類似 crontab 的功能嘍? 05/19 10:30
推 MrMarcus:以前做發較大量信件的時候也有用過這個函數,萬一使用者 05/19 14:08
→ MrMarcus:或者瀏覽器中斷,發送動作還是會繼續做完。 05/19 14:08
推 kornelius:Cool! :) 05/19 18:34
→ roga:這個函式超好用的 05/19 18:52