PHP 文件系統

  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]])

相關文章
相關標籤/搜索