自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP編程:介紹常見(jiàn)的文件操作方式

開(kāi)發(fā) 后端
本文介紹的是PHP編程中常見(jiàn)的幾種文件操作方式,希望對(duì)你有幫助,一起來(lái)看。

PHP處理本地服務(wù)器上的文件和目錄是非常方便的,但有時(shí)候會(huì)出現(xiàn)權(quán)限和路徑相關(guān)的問(wèn)題。

1.打開(kāi)文件

 

  1. resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )  
  2. $handle = fopen(filename,mode)//打開(kāi)文件,返回代表此文件的資源的句柄 

 

文件名稱可以使用相對(duì)路徑或者絕對(duì)路徑也可以使用網(wǎng)絡(luò)協(xié)議模式,打開(kāi)模式具有r\r+\w\w+\a\a+\x\x+\b

在操作二進(jìn)制文件時(shí)如果沒(méi)有指定 'b' 標(biāo)記,可能會(huì)碰到一些奇怪的問(wèn)題,包括壞掉的圖片文件以及關(guān)于 \r\n 字符的奇怪問(wèn)題。

為移植性考慮,強(qiáng)烈建議在用 fopen() 打開(kāi)文件時(shí)總是使用 'b' 標(biāo)記。

以下是幾種打開(kāi)文件的方式

 

  1. $fp = @fopen('log.txt',"rb");  
  2. $fp = @fopen('../log.txt',"rb");  
  3. $fp = @fopen("http://www.runer.com.cn/default.htm","rb");
  4. //還可以使用ftp和ghoper等協(xié)議,必須啟用php.ini文件中的allow_url_fopen選項(xiàng) 

 

 

  1. $filename1 = "userinfo.txt";//目錄下或include_path中存在這個(gè)文件  
  2. $filename2 = "test.txt";//目錄下或include_path并不存在這個(gè)文件  
  3. $resource1 = fopen($filename1,"rb");  
  4. @$resource2 = fopen($filename2,"rb");//因?yàn)槟夸浿胁淮嬖谶@個(gè)文件,并且并未使用或include_path尋找包含文件所在路徑則此操作會(huì)報(bào)錯(cuò),使用錯(cuò)誤抑制符@可以迫使瀏覽器不輸出錯(cuò)誤信息  
  5. if($resource1)  
  6. echo "打開(kāi)文件{$filename1}成功";  
  7. if(!@fopen($filename2,"r"))  
  8. echo "打開(kāi)文件{$filename2}不成功"

 

輸出結(jié)果:打開(kāi)文件userinfo.txt成功

2.使用完畢文件后,要顯式的告訴PHP已經(jīng)使用完文件,讓操作系統(tǒng)確保將文件的所有內(nèi)容正確地從緩沖區(qū)刷新到硬盤(pán)

使用fclose()關(guān)閉文件,

  1. bool fclose ( resource handle )//關(guān)閉一個(gè)已打開(kāi)的文件指針  

 

3.讀取文件,fopen函數(shù)的mode參數(shù)允許讀取,PHP提供了幾個(gè)函數(shù)從文件讀取數(shù)據(jù)

string fgets ( int handle [, int length] )從文件指針中讀取一行,在二進(jìn)制文件上嘗試fgets會(huì)產(chǎn)生不可預(yù)測(cè)的結(jié)果

如果不指定長(zhǎng)度,默認(rèn)讀取1K數(shù)據(jù),碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1 字節(jié)后停止

string fgetss ( resource handle [, int length [, string allowable_tags]] )從文件指針中讀取一行并過(guò)濾掉 HTML 標(biāo)記

fgetc()讀取單個(gè)字符

fread()讀取任意二進(jìn)制數(shù)據(jù)

代碼部分:

  1. $handle = fopen ("test.jpg""rb");  
  2. $c;  
  3. while (!feof($handle)) {  
  4. $contents .= @fread($handle, 8192);//循環(huán)讀取并將其合并為一個(gè)大塊文件  
  5. }  
  6. fclose($handle); 

 

4.判斷文件讀取的狀態(tài)

每個(gè)文件句柄都有一個(gè)文件指針,或者一個(gè)指出下一個(gè)操作將在文件中哪里發(fā)生的游標(biāo),根據(jù)fopen函數(shù)的mode參數(shù)

文件指針最初位于文件的開(kāi)頭(0),或者文件的末尾

feof()可以判斷文件是否已經(jīng)到末尾(到末尾后函數(shù)返回TRUE)

filesize()函數(shù)返回文件的大小 5.寫(xiě)入文件

fwrite()函數(shù)執(zhí)行文件寫(xiě)入

代碼部分:

  1. $filename = 'test.txt';  
  2. $somec;   
  3. // 首先我們要確定文件存在并且可寫(xiě)。  
  4. if (is_writable($filename)) {  
  5. // 在這個(gè)例子里,我們將使用添加模式打開(kāi)$filename,  
  6. // 因此,文件指針將會(huì)在文件的開(kāi)頭,  
  7. // 那就是當(dāng)我們使用fwrite()的時(shí)候,$somecontent將要寫(xiě)入的地方。  
  8. if (!$handle = fopen($filename'a')) {  
  9. echo "不能打開(kāi)文件 $filename";  
  10. exit;  
  11. }  
  12. // 將$somecontent寫(xiě)入到我們打開(kāi)的文件中。  
  13. if (fwrite($handle$somecontent) === FALSE) {  
  14. echo "不能寫(xiě)入到文件 $filename";  
  15. exit;  
  16. }  
  17. echo "成功地將 $somecontent 寫(xiě)入到文件$filename";  
  18. fclose($handle);  
  19. else {  
  20. }  
  21. echo "文件 $filename 不可寫(xiě)"

 

輸出結(jié)果:

成功地將 添加這些文字到文件 寫(xiě)入到文件test.txt

對(duì)于二進(jìn)制數(shù)據(jù),必須指定第三個(gè)參數(shù),它包含寫(xiě)入到磁盤(pán)的數(shù)據(jù)字節(jié)數(shù)

  1. $result = @fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));  

 

6.文件權(quán)限和其他信息

  • is_readable()//判斷文件是否可讀
  • is_writeable()//判斷文件是否可寫(xiě)
  • is_writable()//判斷文件是否可寫(xiě)
  • fileperms()//判斷文件的權(quán)限(UNIX風(fēng)格的文件權(quán)限測(cè)試函數(shù))
  • file_exists()//是否存在這個(gè)文件
  • fileowner()//判斷文件所屬用戶
  • filegroup()//判斷文件所屬組

7.刪除和重命名文件

  • unlink()//刪除文件
  • rename()//重命名文件

8.訪問(wèn)目錄

目錄訪問(wèn)建議使用前向斜線"/",兼容windows和unix系統(tǒng)

  • basename()//返回不包括路徑信息的文件名
  • dirname()//返回文件名的目錄部分
  • realpath()//接受相對(duì)路徑,返回文件的絕對(duì)路徑
  • pathinfo()//提取給定路徑的目錄名,基本文件名和擴(kuò)展名
  • opendir()//打開(kāi)目錄,返回資源句柄
  • readdir()//讀取目錄項(xiàng)
  • rewinddir()//將讀取指針?lè)祷亻_(kāi)頭
  • closedir()//關(guān)閉讀取句柄
  • chdir()//改變當(dāng)前腳本執(zhí)行期間的當(dāng)前工作目錄
  • mkdir()//創(chuàng)建目錄
  • rmdir()刪除目錄

希望以上內(nèi)容介紹的是八中常見(jiàn)的文件操作方式,對(duì)你有幫助。

責(zé)任編輯:于鐵 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-12 16:27:13

PHP

2011-07-14 15:05:54

PHP

2009-11-26 11:25:08

PHP引號(hào)

2011-07-12 17:42:46

PHP

2009-11-27 13:14:07

PHP函數(shù)strist

2010-01-26 10:31:32

Android onK

2009-11-17 14:33:38

PHP數(shù)組循環(huán)操作

2009-11-23 20:32:18

PHP開(kāi)源文檔管理系統(tǒng)

2021-01-08 10:52:22

物聯(lián)網(wǎng)萬(wàn)物互聯(lián)IoT,Interne

2009-12-18 17:08:10

Linux常見(jiàn)文件系統(tǒng)

2011-07-12 16:42:41

2009-12-09 13:54:42

PHP Zend加密文

2010-03-19 17:39:49

Python編程

2011-06-17 16:09:04

freadfwrite

2009-12-10 10:37:18

PHP獲取文件屬性

2009-11-24 15:23:50

PHP文件上傳進(jìn)度條

2022-07-22 08:18:28

JARJava對(duì)象

2010-01-04 11:02:06

ADO.NET組件

2010-03-04 15:57:23

Python實(shí)現(xiàn)ini

2009-11-17 10:42:58

PHP操作符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)