0

该文件是否仍具有正确的先前内容?

1)当使用file_put_contents函数发生错误时

2)当使用复制函数发生错误时

我问是因为我想实现半动态页面,我想知道这个过程中的错误是否会导致网页出现问题?

4

1 回答 1

1

如果您正在做简单的事情,例如file_put_contents("index.html"),可能会出现多个问题:

  • 如果写入失败,则会留下不需要的 HTML 或空白页面;
  • 如果服务器繁忙,访问者可以在 PHP 进程写入文件时看到空白页面或部分内容。

你应该做的是使用临时文件:

if (false !== file_put_contents("index.html.tmp", $data)) {
   rename("index.html.tmp", "index.html");
}

使用临时文件和重命名将避免上述两个问题。适用于各种文件类型和用例。如果重命名失败,您仍将拥有旧版本。这很好,因为即使无法执行所有文件操作,它也不会削弱您的站点。

要增加安全性,请将 tmp 文件写入 Web 浏览器无法访问的路径。

于 2012-12-05T12:20:29.027 回答