Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menambahkan Teks dengan Selamat pada Fail dalam PHP?

Bagaimana untuk Menambahkan Teks dengan Selamat pada Fail dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-01 16:59:02400semak imbas

How to Safely Append Text to a File in PHP?

Cara Mencipta atau Menambah Teks pada Fail

Anda sedang cuba mencipta atau menambahkan pada fail teks bernama "logs.txt" setiap kali pengguna log masuk atau keluar dari tapak web anda. Walau bagaimanapun, kod semasa anda mengalami masalah dengan menambahkan data atau membuat fail jika ia tidak wujud.

Kod asal anda menggunakan mod "wr" untuk membuka fail, yang membukanya untuk menulis dan memotong fail kepada panjang sifar. Untuk menambah data, sebaliknya anda harus menggunakan mod "a", yang membuka fail untuk menulis dan menambahkan pada penghujung fail.

Selain itu, kod anda terdedah kepada keadaan perlumbaan jika berbilang pengguna cuba mengakses fail secara serentak. Untuk mengelakkan ini, anda boleh menggunakan bendera LOCK_EX bersama dengan FILE_APPEND. Ini akan memperoleh kunci eksklusif pada fail, memastikan hanya satu proses boleh menulis kepadanya pada satu masa.

Berikut ialah versi kod anda yang dipertingkatkan yang menangani isu ini:

<code class="php">$txt = "user id date";
$myfile = file_put_contents('logs.txt', $txt.PHP_EOL, FILE_APPEND | LOCK_EX);</code>

Kod ini akan membuat atau membuka fail "logs.txt" dalam mod tambahan, memastikan data baharu dilampirkan pada penghujung fail. Ia juga memperoleh kunci eksklusif pada fail semasa menulis, menghalang berbilang pengguna daripada menulis ke fail secara serentak.

Atas ialah kandungan terperinci Bagaimana untuk Menambahkan Teks dengan Selamat pada Fail dalam 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