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);
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'); }
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!