站長資訊網
        最全最豐富的資訊網站

        PHP文件處理之文件鎖的疑問解答

        在之前的文章《PHP中怎樣刪除一個目錄(實例詳解)》中詳細的介紹了PHP中刪除目錄的相關知識,其中刪除一個非空的目錄稍微復雜些。本篇文章我們來看一下PHP中文件鎖的相關知識,希望對大家有幫助!

        PHP文件處理之文件鎖的疑問解答

        在之前的文章中我們已經了解了很多的文件處理相關知識,比如寫入文件、讀取文件等等操作,其中有一個東西叫做文件鎖。關于文件鎖的理解可能會有些抽象,因為文件鎖的機制一般在打開文件的時候是看不到效果的。

        那文件鎖到底是什么東西?他是用來做什么的?我們為什么要使用文件鎖?我們要怎樣去使用它?帶著這些疑問下面就讓我們來看一下文件鎖的相關知識吧。

        什么是文件鎖?

        首先的一個問題,簡單來說,文件鎖就是一種文件保護機制,可以理解為當你在讀取或者寫入這個文件的時候,也就是已經有一位在進行對該文件進行操作的時候,文件的一種保護機制,為例避免在文件被操作期間被另一個進行操作。

        文件鎖的用途

        一個文件有文件鎖的話,當我在使用這個文件的時候,只有我能夠對該文件進行操作,除非將這個文件鎖進行釋放,否則別人就沒法插手我對該文件的操作。同一時段只能夠允許一人進行操作,防止數據錯誤。

        若是沒有文件鎖,出現多個人員操作同一個文件,極有可能會造成數據的錯誤或者不對等,因此使用文件鎖是必要的。這就是文件所得用途以及為什么要使用文件鎖。

        怎樣去使用文件鎖:flock()函數

        接下來我們看一下怎樣去使用這個PHP文件鎖,首先我們需要知道,我們在打開文件后可以通過flock()函數來對文件進行上鎖。

        flock()函數的基本語法格式如下:

        flock(resource $handle, int $operation[, int &$wouldblock])

        其中需要注意的是:

        參數$handle表示的是文件系統的指針,也就是通過fopen()創建的文件資源;參數$operation表示的是文件鎖類型;參數$wouldblock是一個可選參數,他表示的是可以將其設置為1或者true,這樣的話文件鎖定時就會堵塞其它進程。

        下面我們來介紹一下參數$operation的類型:

        • LOCK_EX表示的是寫鎖,也就是在寫入的時候是寫鎖狀態,其他人不能寫也沒法讀,只有等解鎖后才能恢復。

        • LOCK_SH表示的是共享鎖,理解為別人只能讀,但是沒法寫。解鎖后回復。

        • LOCK_UN表示的是解除上面兩種狀態。也就是解鎖。

        • LOCK_NB表示的是在讀取或寫入的時后,當文件鎖住了,就會馬上返回通知訪問的文件被鎖了。

        接下來我們通過示例來看一下,示例如下:

        <?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, '被鎖住了');  //寫入數據     flock($handle, LOCK_UN);  //釋放文件鎖 }else{     echo "鎖失敗了"; } fclose($handle);//關閉文件 readfile($file);//讀取文件內容 ?>

        輸出結果:

        PHP文件處理之文件鎖的疑問解答

        test.txt內被寫入了數據:

        PHP文件處理之文件鎖的疑問解答

        由上述示例我們便完成了對文件進行文件鎖的操作,操作完成后使用fclose()函數來關閉文件;然后通過readfile()函數讀取文件內容。其中需要注意的是:

        當我們使用flock()函數,就是對文件進行了加鎖,想要讓文件自動解鎖,只需要調用fclose()函數就可以了。在我們寫代碼的時候在使用文件鎖之后還是加上解鎖語句為好。

        大家如果感興趣的話,可以點擊《PHP視頻教程》進行

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品宾馆在线精品酒店| 国产成人久久精品二区三区| 久久亚洲精品中文字幕三区| 亚洲永久精品ww47| 国产福利精品在线观看| 国产麻豆一精品一AV一免费 | 国产亚洲精品精华液| 欧美黑人巨大videos精品| 亚洲精品小视频| 国产精品186在线观看在线播放| 手机日韩精品视频在线看网站| 久久91综合国产91久久精品| 国语自产精品视频在线区| 亚洲国产精品丝袜在线观看| 精品无人区无码乱码毛片国产 | 日本欧美国产精品第一页久久| 久久精品免费观看| avtt天堂网久久精品| 四虎国产精品永久在线| 亚洲欧洲精品成人久久奇米网| 国产L精品国产亚洲区久久 | 精品午夜福利1000在线观看| 国产精品女人呻吟在线观看| 午夜精品在线观看| 99久久99久久精品国产片| 久久久国产精品福利免费| 久久久精品午夜免费不卡| 精品国产第1页| 精品国产一区二区三区免费| 1024国产欧美日韩精品| 国产精品网站在线观看| 97久久精品国产精品青草| 99久久99久久精品免费看蜜桃| 日韩精品极品视频在线观看免费| 亚洲AⅤ永久无码精品AA| 人妻精品久久久久中文字幕| 欧美成人精品一区二三区在线观看| 精品国产午夜肉伦伦影院| 精品人妻少妇嫩草AV无码专区| 国产精品内射视频免费| 久久久WWW成人免费精品|