ホームページ  >  記事  >  バックエンド開発  >  大きなファイル内のコンテンツの特定の行を読み取り、変更するための PHP コード_PHP チュートリアル

大きなファイル内のコンテンツの特定の行を読み取り、変更するための PHP コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:43:351216ブラウズ

コードをコピーします コードは次のとおりです:

$fp = fopen('d:/file.txt', 'r+');
if ($fp) {
$i = 1; (!feof ($fp)) {
//データの 2 行目を変更します
if ($i == 2) {
fseek($fp, 2, SEEK_CUR);
fwrite($fp, '#');
break;
}
fgets($fp);
}
fclose($fp);

ここで注意すべき点は、fgets が行を取得した後、ファイルポインタが末尾を指すことです。したがって、fwrite は fgets の次の行の先頭で動作します。行のどの文字から書き込みを開始するかについては、fseek 関数を使用してファイルを移動できます。ポインタ。もう 1 つ注意すべき点は、ここでの fwrite は挿入操作ではなく置換操作を実行するため、ポインターの後の文字が 1 つずつ置き換えられることです。挿入方法については、まだ勉強していません。難しいと推測されます。効率を高めるために、別の一時ファイルに書き込むことしかできないかもしれません。他に良い方法があるかどうかはわかりません。

さらに、今日はSPLを使って操作する方法も見ました:



コードをコピー
コードは次のとおりです: $fp = new SplFileObject('d:/file.txt', ' r+'); / /seek メソッドのパラメータは 0 からカウントされます。ポインタが行の末尾を指していることをテストしたため、3 行目は変更されます。 1);
//現在の行の内容を取得(2行目)
$line = $fp->current();
//以下は3行目の操作です
$fp->fseek( 2, SEEK_CUR);
$fp->fwrite(' #');


SplFileObject によって提供されるメソッドは、ファイル行を走査するためのキー/値メソッドの使用など、基本的なファイル操作関数よりも豊富です。 SPL は PHP5 に追加する必要があります。他にも便利なオブジェクトがたくさんあります。配列、ファイル ディレクトリ操作、例外処理、いくつかの基本的な型操作などが含まれます。これらのメソッドは、基になる操作の処理をより便利にするために、SPL を継承することでまだ追加されています。


http://www.bkjia.com/PHPjc/320724.html
www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/320724.html技術記事次のようにコードをコピーします。 $fp = fopen('d:/file.txt', 'r+'); if ($fp) { $i = 1; // 2番目の行データ if ($i == 2) { fseek($fp, 2, SEEK_CUR); fwrite($fp, '#'...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。