kawanan
(PHP 4, PHP 5)
kawanan — penguncian fail nasihat ringan
Penerangan
bool flock ( int $handle , int $operation [, int &$wouldblock ] )
PHP menyokong kaedah ringan untuk mengunci semua fail dengan cara nasihat (iaitu, semua program mengakses mesti dikunci dengan cara yang sama, jika tidak, ia tidak akan berfungsi).
Nota:
flock() akan dikuatkuasakan di bawah Windows.
Hendal operasi flock() mestilah penuding fail terbuka. operasi boleh menjadi salah satu daripada nilai berikut:
Untuk mendapatkan kunci kongsi (program membaca), tetapkan operasi kepada LOCK_SH (tetapkan kepada 1 dalam versi sebelum PHP 4.0.1).
Untuk mendapatkan kunci eksklusif (program penulisan), tetapkan operasi kepada LOCK_EX (tetapkan kepada 2 dalam versi sebelum PHP 4.0.1).
Untuk melepaskan kunci (sama ada dikongsi atau eksklusif), tetapkan operasi kepada LOCK_UN (tetapkan kepada 3 dalam versi sebelum PHP 4.0.1).
Jika anda tidak mahu flock() disekat apabila dikunci, tambah LOCK_NB pada operasi (tetapkan kepada 4 dalam versi sebelum PHP 4.0.1).
flock() membenarkan pelaksanaan model baca/tulis mudah yang boleh digunakan pada mana-mana platform (termasuk kebanyakan derivatif Unix dan juga Windows). Parameter ketiga pilihan ditetapkan kepada TRUE jika kunci akan menyekat (sekiranya kod ralat EWOULDBLOCK). Operasi kunci juga boleh dikeluarkan oleh fclose() (juga dipanggil secara automatik apabila kod selesai pelaksanaan).
Mengembalikan BENAR apabila berjaya, atau SALAH apabila gagal
Contoh #1 kumpulan() Contoh
$fp = fopen("/tmp/lock.txt", "w+"); 🎜 >if (flock($fp, LOCK_EX)) { // lakukan kunci eksklusif
fwrite($fp, "Tulis sesuatu di sini ");
flock($fp, LOCK_UN); >} lain {
gema "Tidak dapat mengunci fail !";
}
fclose($fp);>
Nota:
Memandangkan flock() memerlukan penuding fail, anda mungkin perlu menggunakan fail kunci khas untuk melindungi akses kepada fail yang bertujuan untuk dibuka dalam mod tulis (tambah "w" atau "w+" pada fungsi fopen()) .
Amaran
flock() tidak boleh digunakan dengan NFS dan beberapa sistem fail rangkaian lain. Semak dokumentasi sistem pengendalian anda untuk mendapatkan butiran.
Dalam sesetengah sistem pengendalian, flock() dilaksanakan pada tahap proses. Apabila menggunakan API pelayan berbilang benang (seperti ISAPI), anda mungkin tidak boleh bergantung pada flock() untuk melindungi fail, kerana fail boleh diproses oleh skrip PHP yang dijalankan dalam urutan selari lain dalam contoh pelayan yang sama.
flock() tidak menyokong sistem fail lama seperti FAT dan derivatifnya. Oleh itu, FALSE sentiasa dikembalikan dalam persekitaran ini (terutamanya untuk pengguna Windows 98).
Pengenalan kepada penggunaan fungsi kunci fail fungsi flock dalam php:
Sintaks:
bool flock (int $handle, int $operation [, int & $wouldblock ] ) Hendal operasi flock() mestilah penuding fail terbuka. operasi boleh menjadi salah satu daripada nilai berikut:
1 Untuk mendapatkan kunci kongsi (pembaca), tetapkan operasi kepada LOCK_SH (ditetapkan kepada 1 dalam versi sebelum PHP 4.0.1)
2 ( Writer), tetapkan operasi kepada LOCK_EX (set kepada 2 dalam versi sebelum PHP 4.0.1)
3 Untuk melepaskan kunci (sama ada dikongsi atau eksklusif), tetapkan operasi kepada LOCK_UN (dalam versi sebelum PHP 4.0.1) Tetapkan. kepada 3 dalam versi)
4 Jika anda tidak mahu flock() disekat apabila dikunci, tambah LOCK_NB pada operasi (tetapkan kepada 4 dalam versi sebelum PHP 4.0.1)
Lihat di bawah Kod:
a.php
Salin kod
$fp = fopen($file, 'w'); >fwrite( $fp, "abc");
tidur(10);
fwrite($fp, "123"); fclose($ fp);
?>
b.php
Salin kod
Kodnya adalah seperti berikut:
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