該文件是否仍然有正確的以前的內容?如果寫入文件失敗,會發生什麼情況?
1)當使用file_put_contents發生FUNC
2)使用拷貝發生FUNC
我這麼問是因爲我想要實現半動態頁面錯誤錯誤,我想知道如果在這個過程中的錯誤可能會導致網頁的問題?
該文件是否仍然有正確的以前的內容?如果寫入文件失敗,會發生什麼情況?
1)當使用file_put_contents發生FUNC
2)使用拷貝發生FUNC
我這麼問是因爲我想要實現半動態頁面錯誤錯誤,我想知道如果在這個過程中的錯誤可能會導致網頁的問題?
如果你正在做簡單的東西像file_put_contents("index.html")
,可以有多個問題:
你應該做的是使用臨時文件:
if (false !== file_put_contents("index.html.tmp", $data)) {
rename("index.html.tmp", "index.html");
}
使用臨時文件並重新命名將會避免上述兩個問題。適用於各種文件類型和用例。如果重命名失敗,您仍然會擁有舊版本。這是很好的,因爲即使所有文件操作都無法執行,它也不會損壞您的站點。
要增加安全性,請將tmp文件寫入Web瀏覽器無法訪問的路徑。
通過'false == * statement *'% - |打破邏輯 – Stranger
它取決於千件不同的事情,其中主要是正在執行的寫入類型以及文件所在的文件系統的類型。 – Jon
如果您擔心這個問題,請先寫入臨時文件,然後重新命名。 –
@Jon 我在問,因爲我想實現半動態頁面,我想知道這個過程中的錯誤是否會導致網頁出現問題? – MTVS