Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menggantikan Baris Tertentu dalam Fail Teks Menggunakan PHP?

Bagaimana untuk Menggantikan Baris Tertentu dalam Fail Teks Menggunakan PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-12 06:10:02664semak imbas

How to Replace a Specific Line in a Text File Using PHP?

Menggantikan Baris Tertentu dalam Fail Teks Menggunakan PHP

Perlu mengedit fail teks dan sifar masuk pada baris tertentu yang mengandungi sesuatu perkataan? Mari selami dunia PHP dan terokai dua teknik untuk menggantikan baris itu dengan mudah.

Kaedah 1: Penggantian Talian Dalam Memori

Untuk fail yang lebih kecil yang boleh selesa disimpan dalam ingatan, anda boleh menggunakan pendekatan berikut:

$data = file('myfile'); // Reads an array of lines

function replace_a_line($data) {
  if (stristr($data, 'certain word')) {
    return "replacement line!\n";
  }
  return $data;
}

$data = array_map('replace_a_line', $data);
file_put_contents('myfile', $data);

Kaedah 2: Penggantian Talian Intensif Memori yang Kurang

Untuk fail yang lebih besar, cuba kaedah yang lebih menjimatkan memori ini:

$reading = fopen('myfile', 'r');
$writing = fopen('myfile.tmp', 'w');

$replaced = false;

while (!feof($reading)) {
  $line = fgets($reading);
  if (stristr($line,'certain word')) {
    $line = "replacement line!\n";
    $replaced = true;
  }
  fputs($writing, $line);
}
fclose($reading); fclose($writing);

// Don't overwrite if nothing replaced
if ($replaced) {
  rename('myfile.tmp', 'myfile');
} else {
  unlink('myfile.tmp');
}

Begitulah! Pilihan pendekatan bergantung pada saiz fail anda dan kekangan ingatan anda. Ingat, untuk fail yang besar, kaedah kedua adalah sekutu anda, manakala kaedah pertama unggul dengan fail yang lebih kecil.

Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Baris Tertentu dalam Fail Teks Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn