熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

網站建設中PHP的編程8種常見文件操作

2013-11-15 12:27:29  來源: PHP編程 

  文件和目錄的操作 

  
PHP處理本地服務器上的文件和目錄是非常方便的但有時候會出現權限和路徑相關的問題 

打開文件 

resource fopen ( string filename string mode [ bool use_include_path [ resource zcontext]] ) 

$handle = fopen(filenamemode)//打開文件返回代表此文件的資源的句柄 

文件名稱可以使用相對路徑或者絕對路徑也可以使用網絡協議模式打開模式具有rr+ww+aa+xx+b 

在操作二進制文件時如果沒有指定 b 標記可能會碰到一些奇怪的問題包括壞掉的圖片文件以及關於 rn 字符的奇怪問題 

為移植性考慮強烈建議在用 fopen() 打開文件時總是使用 b 標記 

以下是幾種打開文件的方式 

$fp = @fopen(logtxt"rb"); 

$fp = @fopen(/logtxt"rb"); 

$fp = @fopen(""rb");//還可以使用ftp和ghoper等協議必須啟用phpini文件中的allow_url_fopen選項 

////////////////////////////代碼部分//////////////////////////////////////// 

$filename = "userinfotxt";//目錄下或include_path中存在這個文件 

$filename = "testtxt";//目錄下或include_path並不存在這個文件 

$resource = fopen($filename"rb"); 

@$resource = fopen($filename"rb");//因為目錄中不存在這個文件並且並未使用或include_path尋找包含文件所在路徑則此操作會報錯使用錯誤抑制符@可以迫使浏覽器不輸出錯誤信息 

if($resource

echo "打開文件{$filename}成功"; 

if(!@fopen($filename"r")) 

echo "打開文件{$filename}不成功"; 

////////////////////////////////////////////////////////////////////////// 

輸出結果 

打開文件userinfotxt成功 

 

使用完畢文件後要顯式的告訴PHP已經使用完文件讓操作系統確保將文件的所有內容正確地從緩沖區刷新到硬盤 

使用fclose()關閉文件 

bool fclose ( resource handle )//關閉一個已打開的文件指針

  讀取文件fopen函數的mode參數允許讀取PHP提供了幾個函數從文件讀取數據 

string fgets ( int handle [ int length] )從文件指針中讀取一行在二進制文件上嘗試fgets會產生不可預測的結果 

如果不指定長度默認讀取K數據碰到換行符(包括在返回值中)EOF 或者已經讀取了 length 字節後停止 

string fgetss ( resource handle [ int length [ string allowable_tags]] )從文件指針中讀取一行並過濾掉 HTML 標記 

fgetc()讀取單個字符 

fread()讀取任意二進制數據 

////////////////////////////代碼部分//////////////////////////////////////// 

$handle = fopen ("testjpg" "rb"); 

$c; 

while (!feof($handle)) { 

$contents = @fread($handle );//循環讀取並將其合並為一個大塊文件 



fclose($handle); 

////////////////////////////////////////////////////////////////////////// 

輸出結果 

 

判斷文件讀取的狀態 

每個文件句柄都有一個文件指針或者一個指出下一個操作將在文件中哪裡發生的游標根據fopen函數的mode參數 

文件指針最初位於文件的開頭(或者文件的末尾 

feof()可以判斷文件是否已經到末尾(到末尾後函數返回TRUE) 

filesize()函數返回文件的大小 寫入文件 

fwrite()函數執行文件寫入 

////////////////////////////代碼部分//////////////////////////////////////// 

$filename = testtxt

$somec;

  

  // 首先我們要確定文件存在並且可寫 

if (is_writable($filename)) { 

// 在這個例子裡我們將使用添加模式打開$filename 

// 因此文件指針將會在文件的開頭 

// 那就是當我們使用fwrite()的時候$somecontent將要寫入的地方 

if (!$handle = fopen($filename a)) { 

echo "不能打開文件 $filename"; 

exit; 



// 將$somecontent寫入到我們打開的文件中 

if (fwrite($handle $somecontent) === FALSE) { 

echo "不能寫入到文件 $filename"; 

exit; 



echo "成功地將 $somecontent 寫入到文件$filename"; 

fclose($handle); 

} else { 



echo "文件 $filename 不可寫"; 

////////////////////////////////////////////////////////////////////////// 

輸出結果 

成功地將 添加這些文字到文件 寫入到文件testtxt 

 

對於二進制數據必須指定第三個參數它包含寫入到磁盤的數據字節數 

$result = @fwrite($fp$binary_datamb_strlen($binary_databit));

  


 

  文件權限和其他信息 

is_readable()//判斷文件是否可讀 

is_writeable()//判斷文件是否可寫 

is_writable()//判斷文件是否可寫 

fileperms()//判斷文件的權限(UNIX風格的文件權限測試函數) 

file_exists()//是否存在這個文件 

fileowner()//判斷文件所屬用戶 

filegroup()//判斷文件所屬組 

刪除和重命名文件 

unlink()//刪除文件 

rename()//重命名文件 

訪問目錄 

目錄訪問建議使用前向斜線"/"兼容windows和unix系統 

basename()//返回不包括路徑信息的文件名 

dirname()//返回文件名的目錄部分 

realpath()//接受相對路徑返回文件的絕對路徑 

pathinfo()//提取給定路徑的目錄名基本文件名和擴展名 

opendir()//打開目錄返回資源句柄 

readdir()//讀取目錄項 

rewinddir()//將讀取指針返回開頭 

closedir()//關閉讀取句柄 

chdir()//改變當前腳本執行期間的當前工作目錄 

mkdir()//創建目錄 

rmdir()刪除目錄 

////////////////////////////代碼部分//////////////////////////////////////// 

////////////////////////////////////////////////////////////////////////// 

輸出結果 

filename: web : filetype: dir 

filename: study : filetype: dir


From:http://tw.wingwit.com/Article/program/PHP/201311/20983.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.