2014-09-05 91 views

回答

4

否..,PHP腳本不會終止它的執行。

是的..它會完成它的執行。

一旦php腳本啓動,它會完成它的執行,然後停止。

因爲,php運行在服務器端,它不能被客戶端簡單事件打斷,如browser window close

但是,客戶端將無法看到輸出。

爲前:

試試這個代碼:

//File Name: xyz.php 
<?php 
$fp=fopen("output.txt","w"); 
$count=0; 
for($count=0;1;$count++){ 
//Infinite loop 
fwrite($fp,"".PHP_EOL."".$count.""); 
} 
fclose($fp); 
?> 

現在測試這個文件,你關閉瀏覽器窗口後,也它會繼續到輸出文件(output.txt)內進行打印。

不要忘記從command prompttask manager關閉php腳本雖然,或者它會填滿你的硬盤驅動器(我跑了,對於僅僅10秒,在5秒的瀏覽器被關閉,它消耗160 MB! )。

下面是結果分析:

最初文件大小爲:瀏覽次數,

後五秒鐘:76 MB(瀏覽器是在直到這點)。

七點後秒:125 MB(假設在瀏覽器關閉延遲,現在的瀏覽器是完全關閉),

不過10秒後:160 MB(這證明PHP在後臺運行:-) )

現在我已經關掉httpd並且尺寸現在是恆定的。

如果你想看到這種情況發生之前fwrite()

爲補充usleep

usleep(1*1000*1000); // Sleep for 1 sec. 
fwrite($fp,"".PHP_EOL."".$count.""); 

現在你可以看到它的發生是output.txt文件中。即使關閉瀏覽器後也是如此。然而,由於延遲因素,上面給出的結果分析現在不適用於此(如果僅考慮文件係數的大小)。

+1

其實是的,他問腳本是否會完成它的執行:D – 2014-09-05 09:51:25

1

那麼,PHP是服務器端,它計算所有的代碼,然後將結果發送到客戶端。所以我想即使關閉瀏覽器,它也會完成腳本執行。