2010年7月6日 星期二

php 大量發送email的小技巧

相信許多人在寫大量發信的時候, 都會要求使用者不能關閉正在發信的視窗, 因為關閉視窗發email的機制就會中斷, 或者也有人提出另外一種作法就是利用cli的方式執行 在linux上丟到background處理,在windows內用at的指令下排程! 不過事實上不必那麼麻煩! 只要利用php的ignore-user-abort加上set_time_limit來執行即可 這樣處理即使user關掉電腦,php還是會繼續執行下去的 寫個簡單的範例好了 ```php //讓程式執行到結束為止 set_time_limit(0); //瀏覽器關閉後繼續執行 ignore_user_abort(true); sleep(15); touch("/test.txt"); ``` 執行後15秒可以到根目錄下看是否建立test.txt這個檔案(記得要開放寫入權限) ※利用這個方式,可能會發現Browser無法再瀏覽該網站的任何一個頁面, 這個在之前有提過Session的問題,記得執行session_commit就可以避免此問題了