首頁 >後端開發 >php教程 >網站建置中PHP的程式設計8種常見檔案操作_PHP教學課程

網站建置中PHP的程式設計8種常見檔案操作_PHP教學課程

WBOY
WBOY原創
2016-07-22 09:02:43757瀏覽

 檔案與目錄的操作 


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

1.開啟檔案 

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

$handle = fopen(filename,mode)//開啟文件,傳回代表此文件的資源的句柄 

檔案名稱可以使用相對路徑或絕對路徑也可以使用網路協定模式,開啟模式具有rr ww aa xx b 

在操作二進位檔案時如果沒有指定 'b' 標記,可能會碰到一些奇怪的問題,包括壞掉的圖片檔案以及關於 rn 字元的奇怪問題。 

為移植性考慮,強烈建議在用 fopen() 開啟檔案時總是使用 'b' 標記。 

以下是幾種開啟檔案的方式 

$fp = @fopen('log.txt',"rb"); 

$fp = @fopen('../log.txt',"rb"); 

$fp = @fopen("http://www.runer.com.cn/default.htm","rb");//也可以使用ftp和ghoper等協議,必須啟用php.ini檔案中的allow_url_fopen選項

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

$filename1 = "userinfo.txt";//目錄下或include_path中存在這個檔案 

$filename2 = "test.txt";//目錄下或include_path並不存在這個檔案 

$resource1 = fopen($filename1,"rb"); 

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

if($resource1) 

echo "開啟檔案{$filename1}成功"; 

if(!@fopen($filename2,"r")) 

echo "開啟檔案{$filename2}不成功"; 

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

---------------------輸出結果--------------------------- ------------- 

開啟檔案userinfo.txt成功 

-------------------------------------------------- ------------------- 

2.使用完畢文件後,要明確的告訴PHP已經使用完文件,讓作業系統確保將檔案的所有內容正確地從緩衝區刷新到硬碟 

使用fclose()關閉文件, 

bool fclose ( resource handle )//關閉一個已開啟的檔案指標

3.讀取文件,fopen函數的mode參數允許讀取,PHP提供了幾個函數從文件讀取資料 

string fgets ( int handle [, int length] )從檔案指標讀取一行,在二進位檔案上嘗試fgets會產生不可預測的結果 

如果不指定長度,預設讀取1K數據,碰到換行符(包括在回傳值中)、EOF 或已經讀取了 length - 1 位元組後停止 

string fgetss ( resource handle [, int length [, string allowable_tags]] )從檔案指標讀取一行並過濾掉 HTML 標記 

fgetc()讀取單一字元 

fread()讀取任一二進位資料 

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

$handle = fopen ("test.jpg", "rb"); 

$c; 

while (!feof($handle)) { 

$contents .= @fread($handle, 8192);//循環讀取並將其合併為一個大塊檔案 



fclose($handle); 

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

---------------------輸出結果--------------------------- ------------- 

-------------------------------------------------- ------------------- 

4.判斷文件讀取的狀態 

每個檔案句柄都有一個檔案指針,或一個指出下一個操作將在檔案中哪裡發生的遊標,根據fopen函數的mode參數 

文件指針最初位於文件的開頭(0),或文件的末端 

feof()可以判斷檔案是否已經到最後(到結尾後函數回傳TRUE) 

filesize()函數傳回檔案的大小 5.寫入檔案 

fwrite()函數執行檔寫入 

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

$filename = 'test.txt'; 

$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 不可寫"; 

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

---------------------輸出結果--------------------------- ------------- 

成功地將 新增這些文字到檔案 寫入到檔案test.txt 

-------------------------------------------------- ------------------- 

對於二進位數據,必須指定第三個參數,它包含寫入到磁碟的資料位元組數 

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

 


 

  6.文件权限和其他信息 

is_readable()//判断文件是否可读 

is_writeable()//判断文件是否可写 

is_writable()//判断文件是否可写 

fileperms()//判断文件的权限(UNIX风格的文件权限测试函数) 

file_exists()//是否存在这个文件 

fileowner()//判断文件所属用户 

filegroup()//判断文件所属组 

7.删除和重命名文件 

unlink()//删除文件 

rename()//重命名文件 

8.访问目录 

目录访问建议使用前向斜线"/",兼容windows和unix系统 

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

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

realpath()//接受相对路径,返回文件的绝对路径 

pathinfo()//提取给定路径的目录名,基本文件名和扩展名 

opendir()//打开目录,返回资源句柄 

readdir()//读取目录项 

rewinddir()//将读取指针返回开头 

closedir()//关闭读取句柄 

chdir()//改变当前脚本执行期间的当前工作目录 

mkdir()//创建目录 

rmdir()删除目录 

////////////////////////////代码部分//////////////////////////////////////// 

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

---------------------输出结果---------------------------------------- 

filename: web : filetype: dir 

filename: study : filetype: dir

转载于www.abm163.com

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/371884.htmlTechArticle檔案和目錄的操作PHP處理本地伺服器上的檔案和目錄是非常方便的,但有時會出現權限與路徑相關的問題1.開啟檔案resource fopen ( strin...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn