私はファイル ハンドラー クラスに取り組んでおり、ファイル ストリームに関するいくつかの問題が発生しています。追加や上書きなどの操作の機能を提供するには、fopen に渡されるモードを変更するだけです。
ただし、挿入、更新、および削除を簡単に行う方法を提供することは、より困難であることがわかっています。ほとんどの場合、私が抱えている問題はすべて fwrite にあります。
挿入 - 私の知る限り、fwrite を使用してファイルの末尾以外の場所に文字を挿入する方法はありません。私が思いついた 2 つのオプションは、file_get_contents を使用することと、fseek/fwrite を多用してファイルを拡張することです。
削除 - 残念ながら、fwrite を使用して NULL を書き込もうとすることは、文字を「削除」することと同じではありません。データの挿入と同様に、オプションは file_get_contents と fseek/fwrite です。
更新 - ファイル内のデータの更新は、挿入/削除の問題の組み合わせです。新しい値が古い値よりも短い場合は、追加の文字を削除する必要があります。新しい値が古い値よりも長い場合は、追加の文字を挿入する必要があります。それらが同じ長さであれば、単純に fwrite を使用するだけで問題ありません。
うまくいけば、この問題をきれいに解決できることを私が認識していないことがあります。私が見つけた各オプションは、file_get_contents (ファイル全体をメモリに読み込む必要があるため気にしません) を使用するか、fseek/fwrite を多用してファイルの長さを変更します (これは複雑に思えます)。
私が思いつかなかったアイデアを持っている人はいますか?
ありがとう!