php脚本启动,有没有办法启动一个PHP脚本并获得状态?
是否可以使用js在Web服務(wù)器上在后臺(tái)啟動(dòng)php腳本并讓它運(yùn)行,即使您更改頁(yè)面或根本不訪問(wèn)該站點(diǎn),如果您第二次調(diào)用該php腳本也可以獲取當(dāng)前狀態(tài)?
這個(gè)php腳本將處理數(shù)小時(shí)的數(shù)據(jù),每個(gè)循環(huán)的睡眠時(shí)間為X秒/分鐘.如果我之前問(wèn)的是可能的,如果php僅在腳本結(jié)束時(shí)才生成輸出,我怎么能從中獲得“ echos”?
也許這不是PHP的工作?
謝謝
編輯:在帶有Apache的Windows機(jī)器上
解決方法:
在Windows中,它與UNIX沒(méi)有太大區(qū)別.
首先,您需要使用運(yùn)行循環(huán)創(chuàng)建一個(gè)PHP腳本.例如,看一下:http://code.google.com/p/php-apns/.這是一個(gè)PHP“守護(hù)程序”:主腳本PushMonitor.php可以永久運(yùn)行,因?yàn)樗哂袩o(wú)限循環(huán).它定期輪詢隊(duì)列,然后執(zhí)行操作,然后等待.真的很簡(jiǎn)單!
在您的情況下,問(wèn)題是您要從PHP腳本啟動(dòng)“守護(hù)程序”.
您可能需要看一下:http://robert.accettura.com/blog/2006/09/14/asynchronous-processing-with-php/(第一個(gè)示例代碼).您將執(zhí)行類似launchBackgroundProcess(‘php myscript.php’)的操作.
請(qǐng)注意,在代碼上有“ start / b”命令(對(duì)于UNIX,在命令末尾有“&”).這很重要,因?yàn)榉駝t,當(dāng)網(wǎng)頁(yè)的PHP腳本終止時(shí),您的進(jìn)程將被殺死(子進(jìn)程在父進(jìn)程死后就死亡!).
另外,請(qǐng)記住,“ php”可執(zhí)行文件(cli)必須在您的路徑中(以便您可以從命令行執(zhí)行“ php”).
由于啟動(dòng)后臺(tái)進(jìn)程的頁(yè)面的PHP腳本將終止,因此您無(wú)法以簡(jiǎn)單的方式直接捕獲“回聲”.我的建議是將所有輸出寫入文件(或數(shù)據(jù)庫(kù)等),然后在必要時(shí)從該源讀取內(nèi)容.
因此,您將使用file_put_contents()等代替“ echo”.
標(biāo)簽:background,javascript,php
來(lái)源: https://codeday.me/bug/20191102/1989934.html
總結(jié)
以上是生活随笔為你收集整理的php脚本启动,有没有办法启动一个PHP脚本并获得状态?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 云服务器 文件服务,云服务器文件服务
- 下一篇: php请求接口两次,php curl p