久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      PHP文件處理之文件鎖的疑問(wèn)解答

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

      PHP文件處理之文件鎖的疑問(wèn)解答

      在之前的文章中我們已經(jīng)了解了很多的文件處理相關(guān)知識(shí),比如寫(xiě)入文件、讀取文件等等操作,其中有一個(gè)東西叫做文件鎖。關(guān)于文件鎖的理解可能會(huì)有些抽象,因?yàn)槲募i的機(jī)制一般在打開(kāi)文件的時(shí)候是看不到效果的。

      那文件鎖到底是什么東西?他是用來(lái)做什么的?我們?yōu)槭裁匆褂梦募i?我們要怎樣去使用它?帶著這些疑問(wèn)下面就讓我們來(lái)看一下文件鎖的相關(guān)知識(shí)吧。

      什么是文件鎖?

      首先的一個(gè)問(wèn)題,簡(jiǎn)單來(lái)說(shuō),文件鎖就是一種文件保護(hù)機(jī)制,可以理解為當(dāng)你在讀取或者寫(xiě)入這個(gè)文件的時(shí)候,也就是已經(jīng)有一位在進(jìn)行對(duì)該文件進(jìn)行操作的時(shí)候,文件的一種保護(hù)機(jī)制,為例避免在文件被操作期間被另一個(gè)進(jìn)行操作。

      文件鎖的用途

      一個(gè)文件有文件鎖的話,當(dāng)我在使用這個(gè)文件的時(shí)候,只有我能夠?qū)υ撐募M(jìn)行操作,除非將這個(gè)文件鎖進(jìn)行釋放,否則別人就沒(méi)法插手我對(duì)該文件的操作。同一時(shí)段只能夠允許一人進(jìn)行操作,防止數(shù)據(jù)錯(cuò)誤。

      若是沒(méi)有文件鎖,出現(xiàn)多個(gè)人員操作同一個(gè)文件,極有可能會(huì)造成數(shù)據(jù)的錯(cuò)誤或者不對(duì)等,因此使用文件鎖是必要的。這就是文件所得用途以及為什么要使用文件鎖。

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

      接下來(lái)我們看一下怎樣去使用這個(gè)PHP文件鎖,首先我們需要知道,我們?cè)诖蜷_(kāi)文件后可以通過(guò)flock()函數(shù)來(lái)對(duì)文件進(jìn)行上鎖。

      flock()函數(shù)的基本語(yǔ)法格式如下:

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

      其中需要注意的是:

      參數(shù)$handle表示的是文件系統(tǒng)的指針,也就是通過(guò)fopen()創(chuàng)建的文件資源;參數(shù)$operation表示的是文件鎖類型;參數(shù)$wouldblock是一個(gè)可選參數(shù),他表示的是可以將其設(shè)置為1或者true,這樣的話文件鎖定時(shí)就會(huì)堵塞其它進(jìn)程。

      下面我們來(lái)介紹一下參數(shù)$operation的類型:

      • LOCK_EX表示的是寫(xiě)鎖,也就是在寫(xiě)入的時(shí)候是寫(xiě)鎖狀態(tài),其他人不能寫(xiě)也沒(méi)法讀,只有等解鎖后才能恢復(fù)。

      • LOCK_SH表示的是共享鎖,理解為別人只能讀,但是沒(méi)法寫(xiě)。解鎖后回復(fù)。

      • LOCK_UN表示的是解除上面兩種狀態(tài)。也就是解鎖。

      • LOCK_NB表示的是在讀取或?qū)懭氲臅r(shí)后,當(dāng)文件鎖住了,就會(huì)馬上返回通知訪問(wèn)的文件被鎖了。

      接下來(lái)我們通過(guò)示例來(lái)看一下,示例如下:

      <?php header("Content-Type: text/html;charset=utf-8");    //設(shè)置字符編碼 $file = "test.txt"; $handle = fopen($file,'w+'); //打開(kāi)文件 if(flock($handle, LOCK_EX|LOCK_NB)){  //給文件上鎖     fwrite($handle, '被鎖住了');  //寫(xiě)入數(shù)據(jù)     flock($handle, LOCK_UN);  //釋放文件鎖 }else{     echo "鎖失敗了"; } fclose($handle);//關(guān)閉文件 readfile($file);//讀取文件內(nèi)容 ?>

      輸出結(jié)果:

      PHP文件處理之文件鎖的疑問(wèn)解答

      test.txt內(nèi)被寫(xiě)入了數(shù)據(jù):

      PHP文件處理之文件鎖的疑問(wèn)解答

      由上述示例我們便完成了對(duì)文件進(jìn)行文件鎖的操作,操作完成后使用fclose()函數(shù)來(lái)關(guān)閉文件;然后通過(guò)readfile()函數(shù)讀取文件內(nèi)容。其中需要注意的是:

      當(dāng)我們使用flock()函數(shù),就是對(duì)文件進(jìn)行了加鎖,想要讓文件自動(dòng)解鎖,只需要調(diào)用fclose()函數(shù)就可以了。在我們寫(xiě)代碼的時(shí)候在使用文件鎖之后還是加上解鎖語(yǔ)句為好。

      大家如果感興趣的話,可以點(diǎn)擊《PHP視頻教程》進(jìn)行

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)