首頁  >  文章  >  後端開發  >  PHP檔案處理的進階應用—遠端檔案存取及鎖定文件

PHP檔案處理的進階應用—遠端檔案存取及鎖定文件

黄舟
黄舟原創
2017-04-17 17:36:562387瀏覽

PHP檔案處理的高階應用程式—遠端檔案存取及鎖定檔案

#在PHP中,除了可以對檔案進行基本的讀寫操作外,也可以對檔案指標進行查找,定位,以及對正在讀取的檔案進行鎖定等。

前面的幾篇文章《PHP檔案處理—開啟/關閉檔案》,《PHP檔案處理—讀取檔案(一個字元,字符串)》 ,《PHP檔案處理—如何讀取檔案》以及《PHP檔案處理—寫入檔案及操作檔案》中介紹了檔案處理基本的讀寫操作,本節將進一步學習文件處理的高級技術。

一:遠端檔案的存取

PHP 支援URL格式的檔案調用,只要在 php.ini中設定一下就可以了, php.ini 中找到allow_url_fopen,將該選項設為ON。重新啟動伺服器後就可以使用HTTP或FTP的URL格式了,

#例如:

fopen("http://http://127.0.0.1/php/1.php","rb");

二:鎖定檔案

在寫入文字檔案的時候,需要先鎖定該文件,以防止其他使用者同事修改此文件的內容,在PHP中鎖定檔案的函數為flock(),該函數的語法格式如下:參數值#LOCK_SH##取得共用鎖定(讀取檔案) LOCK_EX取得獨佔鎖定(寫入檔案)LOCK_UN釋放鎖定LOCK_NB防止flock()在鎖定時阻塞
bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
說明

在下面的實例中使用flock()函數鎖定文件,然後在寫入數據,最後解除鎖定,關閉文件,具體範例程式碼如下:

<?php
header("Content-Type:text/html; charset=utf-8");
$filename = "tm.txt";        //声明要打开的文件名称
$fd = fopen($filename,"w");   //以w 模式打开文件
flock($fd,LOCK_EX);          //锁定文件(独占共享)
fwrite($fd,"我爱PHP中文网 www.php.cn");      //向文件中写入数据
flock($fd,LOCK_UN);          //解除文件
fclose($fd);                 //关闭文件指针
readfile($filename);         //输出文件内容
?>
PHP檔案處理的進階應用—遠端檔案存取及鎖定文件輸出結果為:

說明:

在向文件寫入資料的時候,使用W 或w+ 模式開啟文件,這個時候如果使用了LOCK_EX,那麼同一時間存取此文件的其他使用者就無法取得檔案的大小,不能進行操作!

下一篇我們將繼續介紹文件處理的高級應用的文件指針,具體請閱讀《###PHP文件處理的高級應用—文件指針###》! ###

以上是PHP檔案處理的進階應用—遠端檔案存取及鎖定文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn