fopen(string filename,string mode [, bool use_include_path [, resource zcontext]])php
fopen()將filename指定的名字資源綁定到一個流上。如何filename的格式爲url格式,則採用搜索協議處理器來處理此模式。不然看成普通文件執行。windows
若是PHP 認爲filename指定的是一個本地文件,嘗試在該文件上打開一個流。該文件必須是PHP中能夠訪問的文件。所以須要確認文件訪問權限。數組
mode選項:r 只讀 r+讀寫 w 寫入(不存在就建立) w+讀寫(不存在就建立)具體mode函數
modepost |
說明url |
'r'spa |
只讀方式打開,將文件指針指向文件頭。.net |
'r+'unix |
讀寫方式打開,將文件指針指向文件頭。 在我爲以前寫入,就會覆蓋原內容指針 |
'w' |
寫入方式打開,將文件指針指向文件頭並將文件大小截爲零。若是文件不存在則嘗試建立之。 |
'w+' |
讀寫方式打開,將文件指針指向文件頭並將文件大小截爲零。若是文件不存在則嘗試建立之。 |
'a' |
寫入方式打開,將文件指針指向文件末尾。若是文件不存在則嘗試建立之。 |
'a+' |
讀寫方式打開,將文件指針指向文件末尾。若是文件不存在則嘗試建立之。 |
'x' |
建立並以寫入方式打開,將文件指針指向文件頭。若是文件已存在,則 fopen() 調用失敗並返回FALSE,並生成一條 E_WARNING 級別的錯誤信息。若是文件不存在則嘗試建立之。這和給 底層的open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及之後的版本所支持,僅能用於本地文件。 |
'x+' |
建立並以讀寫方式打開,將文件指針指向文件頭。若是文件已存在,則 fopen() 調用失敗並返回FALSE,並生成一條 E_WARNING 級別的錯誤信息。若是文件不存在則嘗試建立之。這和給 底層的open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及之後的版本所支持,僅能用於本地文件。 |
‘b’ |
二進制模式,用於與其餘模式進行鏈接,若是文件系統可以區分二進制文件和文本文件可能會使用它,Windows區分二進制文件和文本文件,unix系統則不區分。這個是默認的模式 |
t |
文本,這個模式與其餘模式進行結合。這個模式只是windows系統下的一個選
|
讀取文件
string fgetc(resource handle);
string fgets(int handle[,int length])//從handle指向的文件中讀取一行並返回長多最多爲length-1字節的字符串
handle 是由fopen()或fsockopen()成功打開的文件
string fgetss( resource handle [, int length [, string allowable_tags]] )
和 fgets()相同,只除了 fgetss 嘗試從讀取的文本中去掉任何 HTML 和 PHP 標記。
能夠用可選的第三個參數指定哪些標記不被去掉。
寫入文件
int fwrite(resource handle,string string[,int length])
fwrite() 把 string 的內容寫入 文件指針 handle 處。 若是指定了 length,當寫入了 length 個字節或者寫完了 string之後,寫入就會中止,視乎先碰到哪一種狀況。
file_put_contents
int file_put_contents ( stringfilename, string data [, int flags [, resource context]] )
關閉文件
fclock()
操做值是一個打開的文件指針
在向一個文本文件中進行寫入數據時,須要先鎖定文件。以防其餘用戶同時也修改這個文件。
flock() 操做的handle 必須是一個已經打開的文件指針。operation 能夠是如下值之一:
要取得共享鎖定(讀取程序),將 operation 設爲 LOCK_SH(PHP 4.0.1 之前的版本設置爲 1)。
要取得獨佔鎖定(寫入程序),將 operation 設爲 LOCK_EX(PHP 4.0.1 之前的版本中設置爲 2)。
要釋放鎖定(不管共享或獨佔),將 operation 設爲 LOCK_UN(PHP 4.0.1 之前的版本中設置爲 3)。
若是你不但願 flock() 在鎖定時堵塞,則給 operation 加上 LOCK_NB(PHP 4.0.1 之前的版本中設置爲 4)
目錄處理函數
*目錄也是一個特殊的文件。必須先打開而後讀取而後關閉。
Fopen()函數若是未找到指定的文件,那麼就會自動建立這個文件,而打開目錄函數opendir()卻會拋出錯誤信息。這就是php提供的打開的目錄的函數opendir(); opendir(path,context)
closedir(resourse dir_handle)
mkdir()新建一個目錄
Rmdie()刪除目錄,可是目錄爲空
Unlink()刪除文件 返回bol
PHP經過php.ini文件對上傳文件進行限制。
file_upload//on支持上傳文件 off不支持上傳文件
upload_tmp_dir上傳文件臨時目錄
upload_max_filesize 容許上傳文件最大值。
max_execution_time:php指令所能執行的最長的時間。在選擇超大文本上傳的時候,必定要配置這個選項。
memory_limit:php中一個指定分配的內存空間,單位爲MB。它的大小一樣影響到超大文件的上傳。
上傳超大文件的話就有必要對php.ini進行修改了。
在客戶端對上傳的文件進行控制。
這裏的enctype=」multipary/form-data」:以二進制流傳輸
接下來介紹一下$_FILES數組中每一個元素的含義。
函數名 |
說明 |
$_FILE[filename][name] |
存儲文件的文件名 |
$_FILE[filename][size] |
存儲文件大小,單位爲字節 |
$_FILE[filename][tmp_name] |
存儲文件在臨時目錄中使用的文件名,由於文件上傳時首先要將其以臨時文件的身份保存在臨時目錄中。 |
$_FILE[filename][type] |
存儲上傳文件的類型。 |
$_FILE[filename][error] |
存儲和文件上傳相關的錯誤代碼, 0:表示沒有任何錯誤,文件上傳成功。 1:文件上傳大小超出了限制的值 2:表示上傳文件超出表單中max_file_size的值 3:表示文件只上傳了一部分 4:表示沒有上傳任何文件 |
文件上傳函數 boolen move_uploaded_file() 爲了防止潛在的危險攻擊,事先使用is_uoloadled_file()判斷文件是夠經過http=post上傳。bol類型。
文件下載
經過http方式下載文件
void header(string string [,bool replace [, int http_response_code]])