ホームページ >バックエンド開発 >PHPの問題 >PHPでファイル内の行を削除するにはどうすればよいですか?

PHPでファイル内の行を削除するにはどうすればよいですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-07-10 10:49:452696ブラウズ

php でファイル内の行を削除する方法: まず、ファイルを 1 行ずつ配列に読み込み、次に配列を走査し、配列の各要素の値を保存する文字列に追加します。対応する処理を行う場合、削除された行の配列要素は読み込まれず、最後にファイルを保存するだけです。

PHPでファイル内の行を削除するにはどうすればよいですか?

#ファイル内の行を削除する php メソッド:

実装アイデア:

ファイルを配列に 1 行ずつ読み込み、配列を走査し、配列の各要素の値を保存する文字列に追加します。削除する行に対応する配列要素が削除されると、処理されますが、読み取られるのではなく、最終的にファイルが保存されます。

実装方法:

$num=2; //要删除的行序号 
$fp=file("test.txt"); $total=count($fp); //取得文件总行数 
foreach ($fp as $line) { //按行分解内容并 
$tmp[]=$line; //逐行写入数组 } 
for($i=0;$i<$total;$i++){ 
//若$i的值不等于要删除的行序号 if($i<>$num) 
$savestr.=$tmp[$i]; } //写入文件 
$fp=fopen("test.txt","w"); 
fwrite($fp,$savestr); 
fclose($fp);

上記のPHPプログラムを実行すると、

test.txtファイルの3行目が削除されます。ファイルの行シーケンス番号は、通常理解されている 1 からではなく、0 から始まります。これは、配列要素の添字番号と同じです。

明確にする必要がある問題があります。それは、いわゆる「ライン」の概念です。メモ帳を使用してファイルを作成しましょう。行が終了したら、Enter キーを押すか、入力しないでください。ファイルを保存すると、ファイルには 1 行が含まれます。行を入力して Enter キーを押し、別の行を入力すると、保存後のファイルには 2 行が表示されます。

メモ帳で書式を「自動折り返し」に設定すると、テキスト行が右端に達すると自動的に折り返されますが、2行ではなく1行のままです。メモ帳では、テキストの量がどれだけ多くても、形式が「自動折り返し」かどうかに関係なく、キャリッジ リターン文字がなければ、テキストは 1 行しかありません。つまり、行マークはキャリッジ リターン文字 (PHP では「\r\n」と表記されます) です。

上記のプログラムを変更することで、ファイル内のすべての空行 (スペースと復帰だけの行、または復帰だけの行) を簡単に削除することもできます。配列を走査して保存された文字列を読み取るときに ## を使用します。 . #trim

各配列要素を検出<pre class="brush:php;toolbar:false">for($i=0;$i&lt;$total;$i++){ if(trim($tmp[$i])&lt;&gt;&quot;&quot;) $savestr.=$tmp[$i]; }</pre> このプログラムはファイル内のすべての空白行を削除しますが、ファイルの最後の行が空白行の場合は、空白文字 (存在する場合) を消去します。 ) 次に、キャリッジ リターン文字 (ファイルの終わりへのポインタとして使用されます) を予約します。

関連する学習の推奨事項:
PHP プログラミングの入門から熟練度まで

以上がPHPでファイル内の行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。