2011-11-22 43 views
-1

我寫一個SQL查詢結果到一個文件,一旦我做了它寫入文件,我需要輸出的文件到用戶下載。我的問題是我如何知道文件何時完全寫入,因爲不同的SQL查詢需要不同的時間。無論如何,我可以知道一個文件是完全用PHP編寫的嗎?如何知道一個文件是否使用PHP完全寫入?

+0

你想知道它在同一個PHP腳本或其他? –

回答

1

你的問題缺少很多細節,所以我不認爲一個明確的答案可能是給出。

如果您正在使用的文件系統允許您打開一個具有獨佔寫入權限的文件,那麼查詢腳本可以以這種方式打開文件,然後在另一個腳本上,您只需嘗試使用寫入權限打開該文件反覆進行,直到通話成功,此時您知道其他進程關閉了它。

假設上面是不可能的,另一種選擇是實現一種機制來查詢腳本可以通知其他腳本寫入完成。例如,你可以寫某種標記作爲文件的最後一行,這東西是保證永遠不會出現在SQL查詢的輸出的一部分。

我希望這會有所幫助。如果不是這樣,你可能需要在你的問題中增加更多細節,以便更好地理解問題。

0

你如何編寫SQL查詢結果到一個文件?

如果您使用的是PHP流也許看set_stream_blocking功能here,特別是在筆記關於使用FWRITE和檢查返回值,讓你知道有多少數據被寫入

0

如果您有多個進程能夠寫入相同的文件,然後我會說不,你不能說文件是否完全寫入。就像要求知道日誌文件是否完全寫入 - 通常不會發生的事情。

但是,如果在某些情況下,如果知道文件已完全寫入(比如說文件達到一定大小,或者寫入了一定數量的查詢),則可以使用一些標誌 - 你的文件更改當條件滿足標誌的值,並顯示給用戶時,標誌具有一定的價值

相關問題