PHP flock() º¯Êý
¶¨ÒåºÍÓ÷¨
flock() º¯ÊýËø¶¨»òÊÍ·ÅÎļþ¡£
Èô³É¹¦£¬Ôò·µ»Ø true¡£Èôʧ°Ü£¬Ôò·µ»Ø false¡£
Óï·¨
flock(file,lock,block)
²ÎÊý | ÃèÊö |
---|---|
file | ±ØÐè¡£¹æ¶¨ÒªËø¶¨»òÊͷŵÄÒÑ´ò¿ªµÄÎļþ¡£ |
lock | ±ØÐè¡£¹æ¶¨ÒªÊ¹ÓÃÄÄÖÖËø¶¨ÀàÐÍ¡£ |
block | ¿ÉÑ¡¡£ÈôÉèÖÃΪ 1 »ò true£¬Ôòµ±½øÐÐËø¶¨Ê±×èµ²ÆäËû½ø³Ì¡£ |
˵Ã÷
flock() ²Ù×÷µÄ file ±ØÐëÊÇÒ»¸öÒѾ´ò¿ªµÄÎļþÖ¸Õë¡£
lock ²ÎÊý¿ÉÒÔÊÇÒÔÏÂÖµÖ®Ò»£º
- ҪȡµÃ¹²ÏíËø¶¨£¨¶ÁÈ¡µÄ³ÌÐò£©£¬½« lock ÉèΪ LOCK_SH£¨PHP 4.0.1 ÒÔǰµÄ°æ±¾ÉèÖÃΪ 1£©¡£
- ҪȡµÃ¶ÀÕ¼Ëø¶¨£¨Ð´ÈëµÄ³ÌÐò£©£¬½« lock ÉèΪ LOCK_EX£¨PHP 4.0.1 ÒÔǰµÄ°æ±¾ÖÐÉèÖÃΪ 2£©¡£
- ÒªÊÍ·ÅËø¶¨£¨ÎÞÂÛ¹²Ïí»ò¶ÀÕ¼£©£¬½« lock ÉèΪ LOCK_UN£¨PHP 4.0.1 ÒÔǰµÄ°æ±¾ÖÐÉèÖÃΪ 3£©¡£
- Èç¹û²»Ï£Íû flock() ÔÚËø¶¨Ê±¶ÂÈû£¬Ôò¸ø lock ¼ÓÉÏ LOCK_NB£¨PHP 4.0.1 ÒÔǰµÄ°æ±¾ÖÐÉèÖÃΪ 4£©¡£
ÌáʾºÍ×¢ÊÍ
Ìáʾ£º¿ÉÒÔͨ¹ý fclose() À´ÊÍ·ÅËø¶¨²Ù×÷£¬´úÂëÖ´ÐÐÍê±ÏʱҲ»á×Ô¶¯µ÷Óá£
×¢ÊÍ£ºÓÉÓÚ flock() ÐèÒªÒ»¸öÎļþÖ¸Õ룬 Òò´Ë¿ÉÄܲ»µÃ²»ÓÃÒ»¸öÌØÊâµÄËø¶¨ÎļþÀ´±£»¤´òËãͨ¹ýдģʽ´ò¿ªµÄÎļþµÄ·ÃÎÊ£¨ÔÚ fopen() º¯ÊýÖмÓÈë "w" »ò "w+"£©¡£
Àý×Ó
<?php
$file = fopen("test.txt","w+");
// ÅÅËüÐÔµÄËø¶¨
if (flock($file,LOCK_EX))
{
fwrite($file,"Write something");
// release lock
flock($file,LOCK_UN);
}
else
{
echo "Error locking file!";
}
fclose($file);
?>