0

ファイルには以前の内容が正しく残っていますか?

1)file_put_contents関数を使用してエラーが発生した場合

2)コピー機能を使用してエラーが発生した場合

半動的ページを実装したいのですが、このプロセスでのエラーが Web ページに問題を引き起こす可能性があるかどうかを知りたいので質問しています。

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");
}

一時ファイルと名前の変更を使用すると、上記の両方の問題を回避できます。あらゆる種類のファイル タイプとユース ケースに対応します。名前の変更に失敗しても、古いバージョンのままです。すべてのファイル操作を実行できなくても、サイトが機能しなくなることはないので、これは良いことです。

セキュリティを追加するには、Web ブラウザーがアクセスできないパスに tmp ファイルを書き込みます。

于 2012-12-05T12:20:29.027 に答える