Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menggantikan Baris Tertentu dalam Fail Teks Berdasarkan Perkataan?

Bagaimanakah Saya Boleh Menggantikan Baris Tertentu dalam Fail Teks Berdasarkan Perkataan?

Patricia Arquette
Lepaskan: 2024-11-16 06:57:02
asal
774 orang telah melayarinya

How Can I Replace a Specific Line in a Text File Based on a Word?

Menggantikan Baris Tertentu dalam Fail Teks Berdasarkan Perkataan

Dalam manipulasi fail teks, situasi timbul di mana keperluan untuk menggantikan sesuatu baris teks berdasarkan kehadiran perkataan tertentu menjadi penting. Keperluan ini boleh ditangani menggunakan pelbagai pendekatan, setiap satu sesuai untuk senario yang berbeza.

Pengendalian Fail Kecil

Untuk fail teks yang lebih kecil yang boleh dimuatkan dengan selesa ke dalam memori, kaedah yang mudah melibatkan membaca keseluruhan fail ke dalam tatasusunan baris. Tatasusunan ini kemudiannya boleh diproses menggunakan fungsi tersuai, menggantikan baris yang mengandungi perkataan yang ditentukan dengan cekap.

Berikut ialah contoh pelaksanaan dalam PHP:

$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);
Salin selepas log masuk

Pengendalian Fail Besar

Untuk fail teks yang lebih besar yang melebihi had memori yang tersedia, pendekatan yang lebih cekap diperlukan. Kaedah ini melibatkan membaca fail baris demi baris, menyemak kehadiran perkataan yang dikehendaki dan menggantikannya dalam fail ganti. Jika penggantian dibuat, fail asal akan ditimpa dengan kandungan yang diubah suai.

Pertimbangkan pelaksanaan PHP berikut:

$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);
// might as well not overwrite the file if we didn't replace anything
if ($replaced) 
{
  rename('myfile.tmp', 'myfile');
} else {
  unlink('myfile.tmp');
}
Salin selepas log masuk

Bergantung pada saiz fail dan kekangan sumber, pendekatan ini memberikan kesan yang berkesan penyelesaian untuk menggantikan baris tertentu dalam fail teks berdasarkan kehadiran perkataan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Baris Tertentu dalam Fail Teks Berdasarkan Perkataan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan