PHPを使用してファイルにテキスト行を追加または削除する方法はありますか?
私は特定のウェブホスティングスタック用のホスティングコントロールパネルを作成中です。ファイルシステムにアクセスするための最小限の要件でファイルに変更を加えられるようにしたいので、全体を書き直す必要はありません。構成オプションを追加または削除するファイル。
PHPを使用してファイルにテキスト行を追加または削除する方法はありますか?
私は特定のウェブホスティングスタック用のホスティングコントロールパネルを作成中です。ファイルシステムにアクセスするための最小限の要件でファイルに変更を加えられるようにしたいので、全体を書き直す必要はありません。構成オプションを追加または削除するファイル。
最初にファイルを行に解析してから再度書き出すことなく、ファイルから行を削除する方法はありません。
'a'に設定してfopenを使用すると、ファイルに追加できます。$mode
$fp = fopen('myfile', 'a');
追加するには、のを使用する必要がfopen
あり$mode
ますa
。
ファイルから行を削除する方法については、こちらをご覧ください。
はい、追加モードでファイルを開くことができます。
$fh = fopen('testFile.txt', 'a');
ここでファイルに書き込むと、新しいコンテンツが追加されます。
fopen
このドキュメントを参照してください。
'a':書き込み専用です。ファイルポインタをファイルの最後に置きます。ファイルが存在しない場合は、作成してみてください。
ただし、最後の行を削除することはできません。
PHPでのファイルの操作には、特に同時実行性とロックに関する落とし穴がたくさんあります。構成ファイルを作成しているという事実は、通常はWeb経由でroot権限を持つユーザーのみが使用できるタスクを公開していることも意味します。あなたはあなたの投稿でこれらのことについて言及しませんでしたが、あなたの質問はこれらの問題に取り組むことと比較して取るに足らないものです。
あなたの質問に関して-あなたが提案したものを実装するのはかなり簡単ですが(例えば、sedを実行することによって-これが実行されているOSを言わなかったとしても)私は他の表現で元のファイルのコピーを作成することをお勧めします-明らかな候補は、データベース(行にシーケンス番号を適用して、データを入力するためのギャップを簡単に作成できるデータベース)、またはセッションに格納されているPHPSplDoublyLinkedListです。次に、ユーザーが必要な数の変更を加えたら、作業表現から1回の操作でファイルを再生成します。
最終的に、ソリューションの実装方法に関係なく、ソリューションはファイル全体を書き換えることに注意してください。これは、このプロセスのどれだけがコード内で公開されているかという問題にすぎません。
あなたがしていることはほとんどのphpウェブスクリプトとまったく同じであることに注意してください-それらがHTMLを操作して要求する間、あなたは異なるファイルタイプでそれをしていることを除いて-あなたは他のPHPテンプレートシステムがどのようにあるかを見たいかもしれませんが書かれていて、設定ファイルのテンプレートを作成できるかどうかを検討してください。
HTH
C。
ファイルの途中で何かを変更する必要がある場合は、それを読み取り、解析して、保存し直す必要があります。それ以外の場合は、最後に何かを追加することしかできません。
ただし、この操作のコストについて心配する必要はありません。これは、毎秒100回変更される可能性が低い構成ファイルであるため、ごくわずかな時間しかかかりません。
アクセス/更新/削除の柔軟性を高めたい場合は、構成ファイルをデータベーステーブルに移動することを検討する必要があると思います。