簡體   English   中英

沒有死的PHP腳本

[英]with out dead php script

我想通過while(true){ }運行一個php腳本。

它將獲得已由其他人發送給我的下午並回答他們。(類似於yahoo機器人)

現在,如果我設置set_time_limit(0)並使用while(true)並在服務器上運行此頁面http://ip-address/yahoo.php並關閉我的瀏覽器,它將永遠運行嗎?

不,它不會永遠運行,一旦關閉瀏覽器,腳本就會終止。 您的整個方法是錯誤的,您創建了一個后台進程,該后台進程在后台監聽套接字,而不會運行while(true),因為這是CPU周期的浪費,這是一個巨大的浪費。

研究websockets和node.js,聽起來您需要的與已經創建的類似。

ignore_user_abort(true)可能會這樣做

ignore_user_abort —設置客戶端斷開連接是否應中止腳本執行

這樣做不是一個好主意,也不應該起作用。 您最好在外殼中運行腳本並使其后台或在屏幕中運行。

沒有。

如果您希望腳本永久運行,請在終端(或命令提示符)中運行它。 如果關閉,終端腳本也將停止。

嘗試php cli,這樣您就可以在命令行上運行php。 比您可以創建一個啟動它的Bash文件,因此腳本將“永遠”運行。

但是,如果您通過瀏覽器啟動它,它將不會永遠運行。

不,PHP僅在請求存在的情況下存在。 如果您關閉瀏覽器,該請求也會終止。

[編輯]

正如其他評論者指出的那樣,ignore_user_abort函數可以為您提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM