Menggantikan Baris dalam Fail Teks Berdasarkan Padanan Perkataan Menggunakan PHP
Dalam senario di mana nombor baris tidak diketahui, menggantikan baris tertentu berdasarkan perkataan padanan boleh menjadi satu tugas yang mencabar. Mujurlah, PHP menawarkan beberapa pendekatan berkesan untuk menangani situasi ini:
Untuk Fail yang Lebih Kecil (Muat ke dalam Memori):
- Baca keseluruhan fail ke dalam susunan baris menggunakan fail('myfile').
-
Buat fungsi untuk menggantikan baris yang dikehendaki, seperti replace_a_line($data):
- Semak jika baris mengandungi perkataan sasaran menggunakan stristr($data, 'perkataan tertentu').
- Jika ditemui, kembalikan baris gantian sebagai rentetan.
- Jika tidak, kembalikan baris asal.
- Gunakan penggantian berfungsi kepada setiap baris dalam tatasusunan menggunakan array_map('replace_a_line', $data).
- Tulis tatasusunan yang diubah suai kembali ke fail menggunakan file_put_contents('myfile', $data).
-
Tingkatkan kaedah dengan menggunakan fungsi lambda untuk memudahkan array_map:
- $data = array_map(function($data) { ... }, $data);
Untuk Fail yang Lebih Besar (Memori Intensif):
- Buka fail untuk membaca dan menulis menggunakan fopen('myfile', 'r') dan fopen('myfile.tmp', 'w') masing-masing.
- Tetapkan bendera untuk menunjukkan sama ada penggantian dibuat ($replaced).
- Baca setiap baris dalam fail input menggunakan fgets($reading).
- Semak kehadiran perkataan sasaran menggunakan stristr($line, 'certain word').
- Jika ditemui, gantikan baris dengan versi diubah suai.
- Tulis baris yang dikemas kini pada fail output menggunakan fputs($writing, $line).
- Tutup pemegang fail selepas diproses.
- Ganti fail asal dengan yang diubah suai hanya jika penggantian dibuat (namakan semula('myfile.tmp', 'myfile')) atau padamkan fail sementara jika tiada penggantian diperlukan (nyahpaut('myfile.tmp')).
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Baris dalam Fail Teks Berdasarkan Padanan Kata dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!