1.文件目錄操作
最頂層止錄是磁盤根目錄,用'/'或'//'
當前目錄 ./
../表示apache的目錄即htdocs目錄
1.創建與刪除目錄 mkdir
復制代碼 代碼如下:
<?php教程
if(mkdir("./path",0700)) //在當前目錄中創建path目錄
echo "創建成功";
?>
2.獲取和更改當前目錄
使用getcwd()函數可以取得當前的工作目錄,該函數沒有參數。成功則返回當前的工作目錄,失敗則返回FALSE
3.打開和關閉目錄句柄
opendir($dir)
closed($dir_handle)
4.讀取目錄內容
readdir(),該參數是一個已經打開的目錄句柄,與while循環可以實現對目錄的遍歷
5.獲取指定路徑中的目錄與文件 。
array scandir(string $directory [, int $sorting_order [, resource $context ]])
說明:$directory為指定路徑。參數$sorting_order默認是按字母升序排列,如果設為1表示按字母的降序排列。
$context是可選參數,是一個資源變量,可以用stream_context_create()函數生成,這個變量保存著與具體的操作對象有關的一些數據。
函數運行成功則返回一個包含指定路徑下的所有目錄和文件名的數組,失敗則返回FALSE
2.操作文件的一般方法
3.文件的打開與關閉
1.打開文件
resource fopen(string $filename , string $mode [, bool $use_include_path [, resource $context ]])
●$filename參數。fopen()函數將$filename參數指定的名字資源綁定到一個流上
●$mode參數。$mode參數指定了fopen()函數訪問文件的模式,取值見表4.5。
$mode
說 明
'r'
只讀方式打開文件,從文件頭開始讀
'r+'
讀寫方式打開文件,從文件頭開始讀寫
'w'
寫入方式打開文件,將文件指針指向文件頭。如果文件已經存在則刪除已有內容,如果文件不存在則嘗試創建它
'w+'
讀寫方式打開文件,將文件指針指向文件頭。如果文件已經存在則刪除已有內容,如果文件不存在則嘗試創建它
'a'
寫入方式打開文件,將文件指針指向文件末尾,如果文件已有內容將從文件末尾開始寫。如果文件不存在則嘗試創建它
'a+'
讀寫方式打開文件,將文件指針指向文件末尾。如果文件已有內容將從文件末尾開始讀寫。如果文件不存在則嘗試創建它
'x'
創建並以寫入方式打開文件,將文件指針指向文件頭。如果文件已存在,則fopen()調用失敗並返回FALSE,並生成一條E_WARNING級別的錯誤信息。如果文件不存在則嘗試創建它。此選項被PH及以後的版本所支持,僅能用於本地文件
'x+'
創建並以讀寫方式打開文件,將文件指針指向文件頭。如果文件已存在,則fopen()調用失敗並返回FALSE,並生成一條E_WARNING級別的錯誤信息。如果文件不存在則嘗試創建它。此選項被PH及以後的版本所支持,僅能用於本地文件
'b'
二進制模式,用於連接在其他模式後面。如果文件系統能夠區分二進制文件和文本文件(Windows區分,而UNIX不區分),則需要使用到這個選項,推薦一直使用這個選項以便獲得最大程度的可移植性
●$use_include_path參數。如果需要在include_path(PHP的include路徑,在PHP的配置文件設置)中搜尋文件,
可以將可選參數 $use_include_path的值設為1或TRUE,默認為FALSE。
●$context參數。可選的$context參數只有文件被遠程打開時(如通過HTTP打開)才使用,它是一個資源變量,
其中保存著與fopen()函數具體的操作對象有關的一些數據。如果fopen()打開的是一個HTTP地址,
那麼這個變量記錄著HTTP請求的請求類型、HTTP版本及其他頭信息;如果打開的是FTP地址,
記錄的可能是FTP的被動/主動模式
2.關閉文件
bool fclose(resource $handle)
4.文件的寫入
文件寫入前需打開文件,不存在先創建它,一般用fopen()函數創建
●fwrite().文件打開後,向文件寫入內容
int fwrite(resource $handle , string $string [, int $length ])
說明:參數$handle是寫入的文件句柄,
$string是將要寫入文件中的字符串數據,
$length是可選參數,如果指定了$length,則當寫入了$string中的前$length個字節的數據後停止寫入。
●file_put_contents()函數。PHP 5還引入了file_put_contents()函數。這個函數的功能與依次調用fopen()、fwrite()及fclose()函數的功能一樣。語法格式如下:
int file_put_contents(string $filename , string $data [, int $flags [, resource $context ]])
說明:$filename是要寫入數據的文件名。
$data是要寫入的字符串,$data也可以是數組,但不能為多維數組。
在使用FTP或HTTP向遠程文件寫入數據時,可以使用可選參數$flags和$context,這裡不具體介紹。
寫入成功後函數返回寫入的字節數,否則返回FALSE。
●fputcsv()函數。CSV是一種比較常用的文件格式,一般以.csv作為擴展名。CSV格式把文件的一行看做是一條記錄,記錄裡的字段使用逗號分隔。
在PHP中使用 fputcsv()函數可以把指定的數組格式化為符合CSV文件格式的內容,並寫入文件指針指向的當前行。語法格式如下:
int fputcsv(resource $handle [, array $fields [, string $delimiter [, string $enclosure ]]])
說明:參數$handle是要寫入的文件句柄。
參數$fields是要格式化的數組。
可選的$delimiter參數用於設定字段分界符(只允許一個字符),默認為逗號。
可選的$enclosure參數設定字段環繞符(只允許一個字符),默認為雙引號
5 文件的讀取
1.讀取任意長度
fread()函數可以用於讀取文件的內容,語法格式如下:
string fread(int $handle, int $length)
說明:參數$handle是已經打開的文件指針,
$length是指定讀取的最大字節數,$length的最大取值為8192。
如果讀完$length個字節數之前遇到文件結尾標志(EOF),則返回所讀取的字符,並停止讀取操作。
如果讀取成功則返回所讀取的字符串,如果出錯返回FALSE。
注意:在讀取文件後顯示文件內容時,文本中可能含有無法直接顯示的字符,如HTML標記。
這時需要使用htmlspecialchars()函數將HTML標記轉化為實體才能顯示文件中的字符。
2.讀取整個文件
●file()函數。file()函數用於將整個文件讀取到一個數組中,語法格式如下:
array file(string $filename [, int $use_include_path [, resource $context ]])
說明:本函數的作用是將文件作為一個數組返回,數組中的每個單元都是文件中相應的一行,包括換行符在內,
如果失敗則返回FALSE。參數$filename是讀取的文件名,參數$use_inclue_path和$context的意義與之前介紹的相同
●readfile()函數。readfile()函數用於輸出一個文件的內容到浏覽器中,語法格式如下:
int readfile(string $filename [, bool $use_include_path [, resource $context ]])
●fpassthru()函數。fpassthru()函數可以將給定的文件指針從當前的位置讀取到EOF,並把結果寫到輸出緩沖區。
要使用這個函數,必須先使用fopen()函數打開文件,然後將文件指針作為參數傳遞給fpassthru()函數,
fpassthru()函數把文件指針所指向的文件內容發送到標准輸出。如果操作成功返回讀取到的字節數,否則返回FALSE。
●file_get_contents()函數。file_get_contents()函數可以將整個或部分文件內容讀取到一個字符串中,
功能與依次調用fopen()、fread()及fclose()函數的功能一樣。語法格式如下:
string file_get_contents(string $filename [, int $offset [, int $maxlen ]])
說明:$filename是要讀取的文件名,可選參數$offset可以指定從文件頭開始的偏移量,
函數可以返回從$offset所指定的位置開始長度為$maxlen的內容。如果失敗,函數將返回FALSE
首頁 1 2 末頁