Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menambah Data dengan Selamat pada Fail Teks dan Mencegah Keadaan Perlumbaan?
Mencipta atau Menulis/Melampirkan pada Fail Teks
Dalam bidang pengaturcaraan, keupayaan untuk mencipta atau mengedit fail teks adalah penting. Satu tugas biasa adalah untuk log aktiviti pengguna, seperti log masuk dan log keluar. Walau bagaimanapun, melaksanakan fungsi ini boleh menghadapi cabaran, terutamanya apabila ia melibatkan penambahan data atau pengendalian tindakan pengguna serentak.
Membuat Fail Teks Baharu atau Menambah
Kod yang disediakan coretan bertujuan untuk mencipta fail teks bernama "logs.txt" dan menulis data padanya. Walau bagaimanapun, mod "wr" dalam fopen() menimpa fail, dan bukannya menambahkan baris baharu. Untuk menyelesaikan masalah ini, gunakan file_put_contents() dengan bendera FILE_APPEND, seperti ini:
<code class="php">$txt = "user id date"; $myfile = file_put_contents('logs.txt', $txt.PHP_EOL , FILE_APPEND | LOCK_EX);</code>
Mencegah Keadaan Perlumbaan
Sekarang, mari kita atasi isu kemungkinan keadaan perlumbaan . Apabila berbilang pengguna cuba menulis ke fail teks secara serentak, konflik boleh berlaku. Untuk mengelakkan konflik ini, FILE_APPEND | Bendera LOCK_EX dalam file_put_contents() memastikan akses eksklusif kepada fail semasa menulis. Baris ini mengunci fail sebelum menulis, menghalang proses lain daripada mengaksesnya sehingga operasi selesai.
Ringkasnya, dengan menggunakan file_put_contents() dengan FILE_APPEND | LOCK_EX bendera, anda boleh membuat atau menambah pada fail teks dengan selamat, walaupun dalam senario di mana berbilang pengguna mengakses fail secara serentak.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Data dengan Selamat pada Fail Teks dan Mencegah Keadaan Perlumbaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!