php檔案處理

2021-08-16 01:46:44 字數 3786 閱讀 3140

當程式執行時的資料是存放在記憶體中的,比如變數、常量等;想要長期儲存程式執行完畢所產生的資料,我們可以利用檔案的方式儲存到硬碟上!

檔案型別:

可以通過filetype()獲取乙個檔案的型別

windows最常見的只有dir和file

判斷檔案型別

is_dir(路徑)  //判斷是否是目錄

is_file(路徑) //判斷是否是檔案

//了解

is_readable(路徑)     //是否可讀

is_writable(路徑)     //是否可寫

is_executable(路徑) //是否可執行

檔案的屬性:(什麼叫屬性?比如大小、建立時間。。。)

檢測檔案或目錄是否存在

file_exists(路徑);

獲取檔案大小

filesize(檔案路徑);     //單位為位元組

獲取相關時間

filectime(檔案路徑);    //建立時間  create

filemtime(檔案路徑);    //修改時間  modify

fileatime(檔案路徑);    //訪問時間  active

目錄相關

常見路徑格式:

windows

c:/www/index.php

c:\www\index.php

linux

/var/www/index.php

相對路徑

路徑相關的函式

basename()取出路徑中的檔名部分

dirname()去除路徑中的檔名部分

pathinfo()獲取路徑中的所有資訊

realpath() 獲取規範的絕對路徑(檔案必須存在,否則返回false)

遍歷目錄

opendir(目錄路徑) 開啟乙個目錄

readdir(資源) 讀取乙個目錄資源,並將指標往前移,返回檔案或目錄名

closedir(資源) 關閉乙個目錄

擴充:iconv(原字符集, 目標字符集, 字串)字符集轉換

建立和刪除目錄

mkdir('目錄'[, 許可權, true]) 建立目錄

在windows中許可權被忽略,linux中0777表示最高許可權

第3個true,表示遞迴建立目錄

注意:建立的目錄已存在會報錯

rmdir('目錄路徑') 刪除目錄,只能刪除空目錄

unlink('檔案路徑') 刪除檔案

檔案路徑:

相對路徑:./a/b/c/1.txt

絕對路徑:c:\wamp\www\php15\a\b\c\1.txt

注意:http的絕對路徑無法刪除

檔案的基本操作

touch('檔名'); 設定檔案的修改時間

如果檔案不存在,則會被建立。

copy(原檔名,新檔名);

只能複製乙個檔案,不能複製目錄

rename(舊名,新名);

重新命名乙個檔案,其實相當於剪下

檔案操作:

開啟檔案

fopen('檔案路徑', 開啟方式);

開啟方式:

'r'     唯讀方式開啟,將檔案指標指向檔案頭。  

'r+'    讀寫方式開啟,將檔案指標指向檔案頭。  

'w'     寫入方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。  

'w+'    讀寫方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。 

'a'     寫入方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。  

'a+'    讀寫方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。 

w或w+/a或a+,如果不存在會自動建立

r或r+,不會自動建立檔案

寫檔案fwrite(資源, '寫的內容');

寫的位置由開啟方式決定

讀檔案fread(資源, 讀的長度);

讀的長度必須大於0

關閉檔案

fclose(資源);

簡單的檔案讀寫:(常用)

file_get_contents(檔案路徑)

讀取檔案內容,返回檔案內容的字串

檔案不存在就建立;預設為覆蓋內容,可以用第3個引數設定為追加

上傳用到頭像、相簿、網盤、資料、種子、資源等

檔案的上傳

就是將檔案從客戶端上傳到服務端

實現步驟:

1、表單的設定

1.要做檔案上傳,method必須使用post

2.必須在form標籤裡面加:enctype="multipart/form-data"

enctype:用於指定在傳送資料到伺服器之前如何對表單資料進行編碼

multipart/form-data:表示不對資料進行編碼,以檔案流(二進位制)的形式上傳到伺服器。

3.2、伺服器端的設定 php.ini

1. file_uploads = on 是否允許檔案上傳

2. upload_max_filesize = 2m 上傳檔案最大允許範圍

3. post_max_size = 8m post表單上傳資料的最大允許範圍

4. upload_tmp_dir ="c:/wamp/tmp" 上傳檔案的臨時目錄

注意:post_max_size的值一定要大於upload_max_filesize的值

3、php**處理檔案的上傳

1. 上傳後的資料用$_files接收。

2. $_files中每個元素的意思

name    上傳的檔名

type    檔案型別

tmp_name    臨時檔案路徑

檔案上傳的原理:就是在指令碼執行完畢之前將檔案從這個臨時路徑裡面弄出來,因為這貨會在指令碼執行完畢後自動刪除

error   錯誤號

其值為 0,沒有錯誤發生,檔案上傳成功。

其值為 1,上傳的檔案超過了 php.ini 中 upload_max_filesize 選項限制的值。

其值為 2,上傳檔案的大小超過了 html 表單中 max_file_size 選項指定的值。

其值為 3,檔案只有部分被上傳。

其值為 4,沒有檔案被上傳。

其值為 6,找不到臨時資料夾。

其值為 7,檔案寫入失敗。(比如你的臨時目錄沒有寫的許可權)

size    檔案大小,單位為位元組

執行檔案上傳:

move_uploaded_file(臨時檔名, 新檔名);

本函式檢查檔案是否是合法的上傳檔案

完整的檔案上傳步驟

1、判斷錯誤號

2、判斷檔案的mime型別

3、判斷檔案的大小

4、生成隨機的檔名

5、獲取檔案的字尾名

6、判斷並執行檔案上傳

is_uploaded_file()

所以,我要手動告訴瀏覽器,這是乙個附件,你不要給我解析出來

步驟:1.告訴它是乙個附件

header('content-disposition:attachment')

用readfile()讀取並輸出

3.結合第1步,給檔案取個名字

4.告訴它檔案的大小

header('content-length:'.filesize('檔案路徑'));

5.告訴它檔案的型別

header('content-type:image/jpeg');

PHP 檔案處理

一 將資料寫入乙個檔案 1 開啟這個檔案 如果不存在 則建立 使用fopen 函式 fp fopen path w 第乙個引數 路徑 注意相對路徑和絕對路徑的區別 path server document root 該內建變數代表web伺服器的根目錄 第二個引數 檔案模式 r 唯讀 讀模式 開啟檔案...

PHP檔案處理

1.開啟檔案 fopen filename,mode filename 表示要開啟的檔案路徑 mode 表示開啟的方式 讀,寫 例如 fopen file ab 強烈建議用fopen 開啟檔案時總是使用標記 b r 唯讀方式開啟,將檔案指標指向檔案頭。r 讀寫方式開啟,將檔案指標指向檔案頭。w 寫入...

PHP 檔案處理

fopen 函式用於在 php 中開啟檔案。此函式的第乙個引數含有要開啟的檔案的名稱,第二個引數規定了使用哪種模式來開啟檔案 file fopen welcome.txt r 檔案可能通過下列模式來開啟 模式描述 r唯讀。在檔案的開頭開始。r 讀 寫。在檔案的開頭開始。w只寫。開啟並清空檔案的內容 ...