2011-07-18 47 views
21

我有一個.php腳本,用於創建我的產品列表。 我在共享主機,所以我不能做很多的疑問,否則我得到一個空白頁。Php,執行動作前等待5秒

這是我用我的腳本現在:

script.php?start=0&end=500&indexOfFile=0 ->> make a product0.txt file with first 500 products 

script.php?start=501&end=1000&indexOfFile=1 ->> product1.txt file with another 500 products 

script.php?start=1001&end=1500&indexOfFile=2 ->> product2.txt file with last 500 products 

如何修改腳本,以便它會自動使所有這些文件,這樣我就不必每次更改鏈接手動?

我想點擊一個按鈕,將做到這一點:

使product0.txt文件與第500級的產品

等待5秒鐘

使product1.txt文件與其他500個產品

等待5秒鐘

使product2.txt文件與過去的500個產品

+6

在不到花了你寫這封信的時候,你可能會複製script.php的內容,再粘貼兩遍,在每個部分對'$ start'和'$ end'值進行硬編碼,並在每個複製/粘貼之間添加一個「sleep(5)」。這是整個腳本。 –

+0

哈哈@dan :) ... – Brian

+0

我認爲最好的方法是在全局數組中檢索所需的所有產品,然後對其進行分片,將數據寫入單獨的文件,然後完成。這隻需要一個sql查詢 – krifur

回答

36

使用:

sleep(NUMBER_OF_SECONDS); 
17

開始你的行動之前,使用

sleep(5); 
4

或:

usleep(NUMBER_OF_MICRO_SECONDS); 
0

我在共享主機,所以我不能做很多查詢,否則我會得到一個空白頁面。

這聽起來很奇特。我有最便宜的PHP託管軟件包,我可以找到我的最後一個項目 - 它並不像這樣。我不會支付所做的服務。事實上,我甚至不知道如何配置服務器來複制這種行爲。

不管爲什麼它的行爲如此,在腳本中間添加睡眠不能解決問題。

因爲,大概你控制你的產品目錄,新產品應該是相對罕見的(或者你是否試圖獲得庫存報告?)。如果您控制何時更改數據,爲什麼自動運行腳本?或者你的意思是說你已經擁有這些網址,並且一次只運行一個網址就能得到預期的文件?

+1

他可能會得到空白結果,因爲他沒有釋放執行每個查詢後的結果 –

-2
<?php 
    foreach($i = 0; i < 500; $i++){ 
     your_code; 
     delay(3); // 3 seconds 
    } 
?> 
+2

foreach是不必要的,並且延遲不是我知道的PHP中的函數。 – MSC

0

在Jan2018唯一的解決辦法爲我工作:

<?php 

if (ob_get_level() == 0) ob_start(); 
for ($i = 0; $i<10; $i++){ 

    echo "<br> Line to show."; 
    echo str_pad('',4096)."\n";  

    ob_flush(); 
    flush(); 
    sleep(2); 
} 

echo "Done."; 

ob_end_flush(); 

>