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

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

王林
王林オリジナル
2020-08-12 13:44:302593ブラウズ

php メソッドでファイルの最後の行を削除します。まず fopen() 関数を使用してファイルを開き、次に fgets() 関数を使用して、開いているファイルからコンテンツの行を読み取り、保存します。配列; 最後に array_pop() 関数を使用して、配列の最後の要素を削除するだけです。

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

関連関数:

(推奨チュートリアル: php graphictutorial)

fopen( )関数はファイルまたは URL を開きます。

fopen() が失敗すると、エラー メッセージとともに FALSE が返されます。関数名の前に「@」を追加すると、エラー出力を非表示にできます。

fgets() 関数は、開いているファイルから行を返します。

fgets() 関数は、指定された長さ (長さ - 1) に達するか、改行文字に遭遇するか、ファイルの終わり (EOF) に達するか (いずれか早い方) 、改行を返すのを停止します。関数は失敗すると FALSE を返します。

array_pop() 関数は、配列の最後の要素を削除します。配列の最後の値を返します。配列が空である場合、または配列ではない場合は、NULL が返されます。

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

コードの実装:

/**
 * 删除文件最后一行
 * @param $file_path 文件路径
 */
public function delLastLine($file_path) {
	$file = $fp = fopen($file_path, 'r') or die("Unable to open file!");
	while(!feof($file)) {
		$fp = fgets($file);
		if($fp) {
			$content[] = $fp;
		}
	}
	array_pop($content);
	fclose($file);
	//重新写入文件
	$file = fopen($file_path, 'w+');
	fwrite($file, implode("", $content));
	fclose($file);
}

説明:

私のファイルの読み取りout では、配列の最後の行は false を保存するため、if($fp) が配列に書き込まれます。ファイル内に空行がある場合は、この判定を外して配列の最終行を2回削除してください。ファイルが大きすぎてメモリに収まらない場合、この方法は機能しません。

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

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