php文件操作
fopen 打開文件或者url
resource fopen(string $filename,string $mode)打開失敗返回false
mode參數(shù)指定了所要求到該流的訪問類型列表:
|
mode |
說明 |
|
‘r’ |
只讀方式打開,將文件指針指向文件頭 |
|
‘r+’ |
讀寫方式打開,將文件指針指向文件頭 |
|
‘w’ |
寫入方式打開,將文件指針指向文件頭并將文件大小截為零,如果文件不存在嘗試創(chuàng)建文件 |
|
‘w+’ |
讀寫方式打開,將文件指針指向文件頭并將文件大小截為零,如果文件不存在則嘗試創(chuàng)建文件 |
|
‘a(chǎn)’ |
寫入方式打開,將文件指針指向文件末尾,如果文件不存在則嘗試創(chuàng)建文件 |
|
‘a(chǎn)+’ |
讀寫方式打開,將文件指針指向文件末尾,如果文件不存在則嘗試創(chuàng)建文件 |
|
‘x’ |
創(chuàng)建并以寫入方式打開,將文件指針指向文件頭,如果文件已存在,則fopen()調(diào)用失敗并返回false,并生成一條E_WARNING級別的錯誤信息,如果文件不存在在嘗試創(chuàng)建文件,這和底層的open(2)系統(tǒng)調(diào)用O_EXCL|C_CREAT標記是等價的,注意:僅能用于本地文件 |
|
‘x+’ |
創(chuàng)建并以讀寫方式打開,將文件指針指向文件頭,如果文件已存在,則fopen()調(diào)用失敗并返回FALSE,并生成一條E_WARNING級別的錯誤信息。如果文件不存在則嘗試創(chuàng)建文件, 注意:僅能用于本地文件 |
fread() 讀取文件(可安全用于二進制文件)
string fread(int $handle,int $lenght) 從文件指針handle讀取最多l(xiāng)ength個字節(jié)。該函數(shù)在讀取完最多l(xiāng)ength個字節(jié)數(shù),或到達EOF的時候,或(對于網(wǎng)絡流)當一個包可用時,或(打開用戶空間流之后)已讀取8192個字節(jié)就會停止讀取文件。返回所讀取的字符串,如果出錯返回FALSE
file_get_contents 將整個文件讀入一個字符串
string file_get_contents(string $filenamg) 和file()一樣,除了file_get_contents()把文件讀入一個字符串,將參數(shù)offset所指定的位置開始讀取長度maxlen內(nèi)容,如果失敗,返回false,
file_get_contents()函數(shù)是用來將文件的內(nèi)容讀入到一個字符串中的首選方法,如果操作系統(tǒng)支持還會使用內(nèi)存映射技術來增強性能
file() 把整個文件讀入一個數(shù)組中
array file(sting $filename) 和file_get_contents 一樣,只除了file()將文件作為一個數(shù)組返回。數(shù)組中的每個單元都是文件中相應的一行,包括換行符在內(nèi),如果失敗flie()返回FALSEL
如果也想在inclde_path()中搜尋文件的話,可以將可選參數(shù)use_include_path為1;
fgets() 從文件指針中讀取一行
string fgets(int $handle) 從handle指向的文件中讀取一行并返回長度最多為length-1字節(jié)的字符串,碰到換行符(包括在返回值中)、EOF或者已經(jīng)讀取了length-1字節(jié)后停止(看先碰到那一種情況),如果沒有指定length,則默認為1k, 出錯返回false
文件指針必須是有效的,必須指向由fopen()或fsockopen()成功打開文件(并還未關閉)
fclose() 關閉一個已打開的文件指針
bool fclose(resource) 將handle指向的文件關閉 成功返回true 或者失敗時返回FALSE
fwrite() 寫入文件(可安全用于二進制文件)等同于fputs()
int fwrite(resource $handle,string $string) fwrite()把string的內(nèi)容寫入文件指針handle處,如果指定了length,當寫入length個字節(jié)或者寫完了string以后,寫入就會停止,視為先碰到哪種情況
fwrite()返回寫入的字符數(shù),出現(xiàn)錯誤時則返回FALSE.
文件目錄
file_exists 檢查文件或目錄是否存在
bool file_exists(string $filename)如果由filename指定的文件或目錄存在則返回true,否則返回FALSE
is_dir 判斷給定文件是否是一個目錄
bool is_dir(string $filename) 如果文件名存在并且為目錄則返回TRUE,如果filenam是相對經(jīng),則按照當前的目錄檢查其相對路徑
is_readable 判斷給定文件名是否可讀
bool is_readable(string $filename); 如果由filename 指定的文件或目錄存在并且可讀則返回TRUE,記住php也許只能以運行webseverver的用戶名來訪問文件
is_writable() 判斷給定的文件名是否可寫
bool is_writable(string $filename) 如果文件存在并且可寫則返回TRUE,filename參數(shù)可以是一個允許進行是否可寫檢查的目錄名
mkdir 新建目錄
bool mkdir(string $pathname )嘗試創(chuàng)建一個由pathname指定的目錄,默認的mode是0777,意味著最大可能的訪問權,成功返回true,否則返回false
fliesize 取得文件大小
int filesize(string $filename) 返回文件大小的字節(jié)數(shù),如果出錯返回FALSE并生成一條E_WARNING錯誤
opendir() 打開目錄句柄
resource opendir(sting $filename) 打開目錄句柄 如果成功則返回目錄句柄的resource,失敗則返回false,如果path不是一個合法的目錄或者因為權限限制文件系統(tǒng)錯誤而不能打開目錄,opendir()返回一個FALSE并產(chǎn)生一個E_WARNING級別的php錯誤信息
rename 重命名一個文件或目錄
bool rename(string $oldname,string $newname) 嘗試把oldname重命名為newname 成功時返回true 失敗返回false
readdir() 從目錄句柄中讀取條目
string readdir(resource $dir_handle) 返回目錄中下一個文件的文件名,文件名以文件系統(tǒng)中的排序返回,成功則返回文件名,失敗時返回FALSE
rmdir 刪除目錄
bool rmdir(string $dirname)嘗試刪除dirname所指定的目錄,該目錄必須為空,而且要有相應的權限,成功是返回true,否則失敗時返回false
unlink刪除文件
bool unlink ( string $filename ) 刪除 filename。和 Unix C 的 unlink() 函數(shù)相似。成功時返回 TRUE, 或者在失敗時返回 FALSE.
fefo 測試文件指針是否到了文件結束的位置
bool feof(resource $handle)如果指針到了EOF或者出錯時則返回true,否則返回一個錯誤(包含socket超時),其它情況則返回FALSE.
注意:文件指針必須是有效的,必須指向由fopen()或fsockopne()成功打開的文件(并還未關閉的)
文件權限
chmod 改變文件權限
bool chmod(string $filename,int $mode)
嘗試將filename所指定文件的模式改成mode所指定的
注意mode不會被自動當成八進制的值,而且也不能用字符串,要確保正確操作,需要給mode前面加上0.
mode 參數(shù)包含三個八進制數(shù)按順序分別指定了所有者、所有者所在的組以及所有人的訪問限制
chgrp改變文件所屬的組
bool chgrp ( string $filename , mixed $group )
嘗試將文件 filename 所屬的組改成 group(通過組名或組 ID 指定)。只有超級用戶可以任意修改文件的組,其它用戶可能只能將文件的組改成該用戶自己所在的組。成功時返回 TRUE, 或者在失敗時返回 FALSE
chown改變文件的所有者
bool chown ( string $filename , mixed $user )
嘗試將文件 filename 的所有者改成用戶 user(由用戶名或用戶 ID 指定)。只有超級用戶可以改變文件的所有者。成功時返回 TRUE, 或者在失敗時返回 FALSE.
fileperms 取得文件的權限
int fileperms ( string $filename ) 返回文件的訪問權限,如果出錯則返回 FALSE。
文件的信息
stat 給出文件的信息
array stat(string $filename)
獲取由filename指定文件的統(tǒng)計信息,如果filename是符號連接,則統(tǒng)計信息是關于被連接文件本身的,而不是符號連接。如果出錯,stat()返回false,并且發(fā)出一條警告
返回一個數(shù)組包含文件的統(tǒng)計信息,該數(shù)組具有以下列出的單元,數(shù)組下標從零開始
stat() 和 fstat() 返回格式
|
數(shù)字下標 |
關聯(lián)鍵名(自 PHP 4.0.6) |
說明 |
|
0 |
dev |
device number - 設備名 |
|
1 |
ino |
inode number - inode 號碼 |
|
2 |
mode |
inode protection mode - inode 保護模式 |
|
3 |
nlink |
number of links - 被連接數(shù)目 |
|
4 |
uid |
userid of owner - 所有者的用戶 id |
|
5 |
gid |
groupid of owner- 所有者的組 id |
|
6 |
rdev |
device type, if inode device * - 設備類型,如果是 inode 設備的話 |
|
7 |
size |
size in bytes - 文件大小的字節(jié)數(shù) |
|
8 |
atime |
time of last access (unix timestamp) - 上次訪問時間(Unix 時間戳) |
|
9 |
mtime |
time of last modification (unix timestamp) - 上次修改時間(Unix 時間戳) |
|
10 |
ctime |
time of last change (unix timestamp) - 上次改變時間(Unix 時間戳) |
|
11 |
blksize |
blocksize of filesystem IO * - 文件系統(tǒng) IO 的塊大小 |
|
12 |
blocks |
number of blocks allocated - 所占據(jù)塊的數(shù)目 |
lstat給出一個文件或符號連接的信息
array lstat ( string $filename )
獲取由 filename 指定的文件或符號連接的統(tǒng)計信息。本函數(shù)和 stat() 函數(shù)相同,只除了如果 filename 參數(shù)是符號連接的話,則該符號連接的狀態(tài)被返回,而不是該符號連接所指向的文件的狀態(tài)。
fstat通過已打開的文件指針取得文件信息
array fstat ( resource $handle )
獲取由文件指針 handle 所打開文件的統(tǒng)計信息。本函數(shù)和 stat() 函數(shù)相似,除了它是作用于已打開的文件指針而不是文件名。
touth 設定文件的訪問和修改時間
bool touch(string $filename, [, int $time [, int $atime ]])
嘗試將由 filename 給出的文件的訪問和修改時間設定為給出的時間。如果沒有給出可選參數(shù) time,則使用當前系統(tǒng)時間。如果給出了第三個參數(shù) atime,則給定文件的訪問時間會被設為 atime。注意訪問時間總是會被修改的,不論有幾個參數(shù), 如果文件不存在,則會被創(chuàng)建。成功時返回 TRUE, 或者在失敗時返回 FALSE.
filectime 取得文件的inode修改時間
int filectime(string $filenaem) 返回文件上次 inode 被修改的時間,如果出錯則返回 FALSE。時間以 Unix 時間戳的方式返回。
filemtime取得文件修改時間
int filemtime ( string $filename ) 返回文件上次被修改的時間,出錯時返回 FALSE。時間以 Unix 時間戳的方式返回,可用于 date()。
總結
- 上一篇: iOS 13 教程:如何使用「低数据模式
- 下一篇: Excel—SUMPRODUCT用法指南