您好,登錄后才能下訂單哦!
今天小編給大家分享一下PHP常用的文件操作函數實例分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
常用PHP文件操作函數
注:文件操作函數的行為受到 php.ini 中設置的影響。
當在 Unix 平臺上規定路徑時,正斜杠 (/) 用作目錄分隔符。而在 Windows 平臺上,正斜杠 (/) 和反斜杠 () 均可使用。
返回路徑中的文件名。分為帶擴展名和不帶擴展名的。
語法:basename(path,suffix)
Path:必需。規定要檢查的路徑。
Suffix:可選。規定文件擴展名。如果文件有名有文件擴展名,將不會顯示這個擴展名。
// basename $path = "/testweb/home.php"; // 輸出文件名,包含擴展名 echo basename($path) ."<br/>"; // home.php // 輸出文件名,不包含擴展名 echo basename($path,".php"); // home
復制文件。該函數如果成功則返回 TRUE,如果失敗則返回 FALSE。如果目標文件已存在,將會被覆蓋。
語法:copy(file,to_file)
File:必需。規定要復制的文件。
to_file:必需。規定復制文件的目的地。
// 復制文件,返回值為bool echo copy("source.txt","target.txt");
返回路徑中的目錄部分。
語法:dirname(path)
Path:必需。規定要檢查的路徑。
// 返回文件路徑 echo dirname("c:/testweb/home.php")."<br>"; // c:/testweb/ echo dirname("/testweb/home.php"); // /testweb/
返回目錄的可用空間。,以字節為單位。
語法:disk_free_space(directory)
Directory:必需。規定要檢查的目錄。(該目錄有限制)
// 返回指定目錄的可用空間(查詢的目錄是有限制的) echo disk_free_space("D:/wwwroot/xxx.com/");
返回一個目錄的磁盤總容量。返回字節數
語法:disk_total_space(directory)
Directory:必需。規定要檢查的目錄。
echo disk_total_space("C:/Windows/Temp/"); echo "<hr>";
檢查文件或目錄是否存在。返回bool值
語法:file_exists(path)
Path:必需。規定要檢查的路徑。
// 查看test.txt是否存在,返回bool值 echo file_exists("target.txt"); // 1 echo "<hr>";
將文件讀入字符串。
語法:file_get_contents(path,include_path,context,start,max_length)
Path:必需。規定要讀取的文件。
include_path:可選。如果您還想在 include_path(在 php.ini 中)中搜索文件的話,請設置該參數為 '1'。
Context:可選。規定文件句柄的環境。context 是一套可以修改流的行為的選項。若使用 NULL,則忽略。
Start:可選。規定在文件中開始讀取的位置。該參數是 PHP 5.1 中新增的。
max_length:可選。規定讀取的字節數。該參數是 PHP 5.1 中新增的。
// 讀取文件 echo file_get_contents("target.txt"); echo "<hr>";
提示: 該函數是二進制安全的。(意思是二進制數據(如圖像)和字符數據都可以使用此函數寫入。)
將字符串寫入文件。如果成功,該函數將返回寫入文件中的字符數。如果失敗,則返回 False。
語法:int file_put_contents ( string filename,mixedfilename , mixed filename,mixeddata [, int flags=0[,resourceflags = 0 [, resource flags=0[,resourcecontext ]] )
File:必需。規定要寫入數據的文件。如果文件不存在,則創建一個新文件。
Data:必需。規定要寫入文件的數據。可以是字符串、數組或數據流。
Mode:可選。規定如何打開/寫入文件。可能的值:FILE_USE_INCLUDE_PATH/FILE_APPEND/LOCK_EX
Context:可選。規定文件句柄的環境。context 是一套可以修改流的行為的選項。
// 寫入文件 echo file_put_contents("sites.txt","Runoob"); echo "<hr>";
函數返回指定文件的大小。
如果成功,該函數返回文件大小的字節數。如果失敗,則返回 FALSE。
語法:filesize(filename)
Filename:必需。規定要檢查的文件。
// 返回文件大小 echo filesize("target.txt"); echo "<hr>";
函數返回指定文件或目錄的類型。
若成功,則返回 7 種可能的值。若失敗,則返回 false。
語法:filetype(filename)
Filename:必需。規定要檢查的文件。
// 返回文件類型 echo filetype("target.txt"); echo "<hr>";
返回一個包含匹配指定模式的文件名/目錄的數組。
glob() 函數返回匹配指定模式的文件名或目錄。
該函數返回一個包含有匹配文件 / 目錄的數組。如果出錯返回 false。
語法:glob(pattern,flags)
File:必需。規定檢索模式。
Size:可選。規定特殊的設定。
GLOB_MARK - 在每個返回的項目中加一個斜線
GLOB_NOSORT - 按照文件在目錄中出現的原始順序返回(不排序)
GLOB_NOCHECK - 如果沒有文件匹配則返回用于搜索的模式
GLOB_NOESCAPE - 反斜線不轉義元字符
GLOB_BRACE - 擴充 {a,b,c} 來匹配 'a','b' 或 'c'
GLOB_ONLYDIR - 僅返回與模式匹配的目錄項
GLOB_ERR - 停止并讀取錯誤信息(比如說不可讀的目錄),默認的情況下忽略所有錯誤
注釋:GLOB_ERR 是 PHP 5.1 添加的。
echo "<pre>"; var_dump(glob("*.*")); echo "<hr>";
判斷指定的文件名是否是一個目錄。
語法:is_dir(file)
File:必需。規定要檢查的文件。
$file = "D:/wwwroot/xxx.com/"; if(is_dir($file)) { echo ("$file is a directory"); } else { echo ("$file is not a directory"); } echo "<hr>";
判斷文件是否可寫。如果文件存在并且可寫則返回 true。
語法:is_writable(file)
File:必需。規定要檢查的文件。
$file = "target.txt"; if(is_writable($file)) { echo ("$file is writeable"); } else { echo ("$file is not writeable"); } echo "<hr>";
創建目錄,如果成功該函數返回 TRUE,如果失敗則返回 FALSE。
語法:mkdir(path,mode,recursive,context)
Path:必需。規定要創建的目錄的名稱。
Mode:可選。規定權限。默認是 0777(允許全局訪問)。
mode 參數由四個數字組成:
第一個數字通常是 0
第二個數字規定所有者的權限
第三個數字規定所有者所屬的用戶組的權限
第四個數字規定其他所有人的權限
可能的值(如需設置多個權限,請對下面的數字進行總計):
1 = 執行權限
2 = 寫權限
4 = 讀權限
Recursive:可選。規定是否設置遞歸模式。(PHP 5 中新增的)
Context:可選。規定文件句柄的環境。context 是一套可以修改流的行為的選項。(PHP 5 中新增的)
echo mkdir("testing"); echo "<hr>";
注釋: mode 參數在 Windows 平臺上被忽略。
將上傳的文件移動到新位置。若成功,則返回 true,否則返回 false。
文件上傳的核心就是這個文件
語法:move_uploaded_file(file,newloc)
File:必需。規定要移動的文件。
Newloc:必需。規定文件的新位置。
注釋:本函數僅用于通過 HTTP POST 上傳的文件。
注意:如果目標文件已經存在,將會被覆蓋。
函數解析一個配置文件(ini 文件),并以數組的形式返回其中的設置。
語法:parse_ini_file(file,process_sections)
File:必需。規定要檢查的 ini 文件。
process_sections:可選。如果設置為 TRUE,則返回一個多維數組,包括了配置文件中每一節的名稱和設置。默認是 FALSE。
echo "<pre>"; var_dump(parse_ini_file("test.ini")); echo "<hr>";
注:此ini文件不一定非的是php.ini,也可以是你自己的ini配置文件。
該函數刪除所有符號連接(比如 '/./', '/../' 以及多余的 '/'),并返回絕對路徑名。
如果失敗,該函數返回 FALSE。
語法:realpath(path)
Path:必需。規定要檢查的路徑。
echo realpath("test.ini");
rename() 函數重命名文件或目錄。
如果成功,該函數返回 TRUE。如果失敗,則返回 FALSE。
語法:rename(oldname,newname,context)
Oldname:必需。規定要重命名的文件或目錄。
Newname:必需。規定文件或目錄的新名稱。
Context:可選。規定文件句柄的環境。context 是一套可以修改流的行為的選項。
echo rename("test.ini","testss.ini"); echo "<hr>";
創建唯一的臨時文件。若成功,則該函數返回新的臨時文件名。若失敗,則返回 false。
語法:tempnam(dir,prefix)
Dir:必需。規定創建臨時文件的目錄。
Prefix:必需。規定文件名的開頭。
echo tempnam("D:wwwrootxxx.com","TMP0"); echo "<hr>";
注: 此方法創建的文件,如果不再需要該文件則要刪除此文件,不會自動刪除的。
建立臨時文件。此函數創建的臨時文件會在文件關閉后(用 fclose())或當腳本結束后自動被刪除。
語法:tmpfile()
$temp = tmpfile(); fwrite($temp, "Testing, testing."); // 將文件指針的位置倒回文件的開頭。 rewind($temp); // 從文件中讀取1K數據 echo fread($temp,1024); //This removes the file fclose($temp);
刪除文件。如果成功,該函數返回 TRUE。如果失敗,則返回 FALSE。
語法:unlink(filename,context)
Filename:必需。規定要刪除的文件。
Context:可選。規定文件句柄的環境。context 是一套可以修改流的行為的選項。
// 如果沒有text.txt文件,這樣寫輸出的結果會報警告,測試代碼,就這樣了 // 實際用的時候,需要注意這個問題 $file = "test.txt"; if (!unlink($file)) { echo ("Error deleting $file"); } else { echo ("Deleted $file"); }
改變文件權限。如果成功則返回 TRUE,如果失敗則返回 FALSE。
語法:chmod(file,mode)
File:必需。規定要檢查的文件。
Mode:必需。規定新的權限。
mode 參數由 4 個數字組成:
第一個數字通常是 0
第二個數字規定所有者的權限
第三個數字規定所有者所屬的用戶組的權限
第四個數字規定其他所有人的權限
可能的值(如需設置多個權限,請對下面的數字進行總計):
1 = 執行權限
2 = 寫權限
4 = 讀權限
echo chmod("target.txt",0600); echo "<hr>";
改變文件所有者。如果成功則返回 TRUE,如果失敗則返回 FALSE。
語法:chown(file,owner)
File:必需。規定要檢查的文件。
Owner:必需。規定新的所有者。可以是用戶名或用戶的 ID。
echo chown("target.txt","root"); echo "<hr>";
改變文件組。如果成功則返回 TRUE,否則返回 FALSE。
語法:chgrp(file,group)
File:必需。規定要檢查的文件。
Group:可選。規定新的組。可以是組名或組的 ID。
echo chgrp("test.txt","admin"); echo "<hr>";
以上就是“PHP常用的文件操作函數實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。