ホームページ >バックエンド開発 >PHPの問題 >PHPでファイル内の行を削除する方法

PHPでファイル内の行を削除する方法

王林
王林オリジナル
2020-11-10 10:48:052869ブラウズ

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

PHPでファイル内の行を削除する方法

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

(学習ビデオの推奨: java ビデオ チュートリアル)

実装方法:

$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」と表記されます) です。

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

for($i=0;$i<$total;$i++){ if(trim($tmp[$i])<>"") $savestr.=$tmp[$i]; }

このプログラムはファイル内のすべての空白行を削除しますが、ファイルの最後の行が空白行の場合は、空白文字 (存在する場合) をクリアし、キャリッジを保持します。リターン文字 (ファイルの終わりへのポインタとして使用されます)。

関連する推奨事項: php トレーニング

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

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