當程式執行時的資料是存放在記憶體中的,比如變數、常量等;想要長期儲存程式執行完畢所產生的資料,我們可以利用檔案的方式儲存到硬碟上!
檔案型別:
可以通過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只寫。開啟並清空檔案的內容 ...