Rumah >pembangunan bahagian belakang >masalah PHP >Adakah php tahu tentang kunci fail? Apa gunanya?
Dalam artikel sebelumnya, kami memperkenalkan cara menggunakan PHP untuk mendapatkan fail dalam direktori yang ditentukan (tidak termasuk subdirektori Jika anda memerlukannya, sila baca "Bagaimanakah PHP mengetahui fail yang terdapat dalam direktori yang ditentukan" . Kali ini kami akan memperkenalkan kunci fail kepada anda, lihat fungsi kunci fail, dan cara menambah kunci fail dan melepaskan kunci fail.
Dalam artikel sebelumnya "operasi fail php: cara mengosongkan fail dan menambah semula data" kami memperkenalkan kaedah menulis data ke fail Dalam artikel itu, kami a pengguna tunggal pada masa yang sama Manipulasi fail supaya tiada masalah. Walau bagaimanapun, jika dalam persekitaran rangkaian, berbilang pengguna pelanggan mengakses fail yang sama pada pelayan pada masa yang sama, maka program akan mengalami ralat dan fail tersebut mungkin rosak.
Contohnya:
Mula-mula gunakan fungsi fopen() untuk membuka fail. Kemudian gunakan penyataan
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = "test.txt"; $handle = fopen($file,'w+'); //打开文件 if(flock($handle, LOCK_EX|LOCK_NB)){ //给文件上锁 fwrite($handle, '现在是:'.date('Y-m-d H:i:s', time())); //写入数据 flock($handle, LOCK_UN); //释放文件锁 }else{ echo "string"; } fclose($handle);//关闭文件 readfile($file);//读取文件内容 ?>
Selepas fail dikendalikan, anda perlu menggunakan fungsi fclose() untuk menutup fail, akhirnya, gunakan fungsi readfile() untuk membaca kandungan fail. Oleh itu, hasil output ialah:
flock($handle, LOCK_EX|LOCK_NB)
Mari kita lihat secara ringkas fungsi flock(). Fungsi
menerima 2 parameter yang diperlukan
(fail buka yang perlu dikunci/dikunci) dan(jenis kunci) dan parameter yang ditinggalkan
(apabila nilai ditetapkan Apabila 1 atau benar, proses lain boleh disekat apabila fail dikunci).flock($file,$lock,$block)
Parameter $lock digunakan untuk menetapkan jenis kunci fail Anda boleh menetapkan satu atau lebih nilai berikut (berbilang nilai perlu dipisahkan dengan $file
): $lock
<.>$block
- Kunci kongsi (program membaca). Benarkan proses lain mengakses fail. |
- Kunci eksklusif (program ditulis). Halang proses lain daripada mengakses fail. LOCK_SH
- Mengeluarkan kunci kongsi atau eksklusif LOCK_EX
- Mengelakkan menyekat proses lain sekiranya berlaku kunci. LOCK_UN
Pengendalian asas fail PHPLOCK_NB
Disyorkan: 《Ringkasan soalan temuduga PHP (koleksi)
》《
》
Atas ialah kandungan terperinci Adakah php tahu tentang kunci fail? Apa gunanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!