以下是PHP檔案操作函數。當然,這只是部分,還有很多,我沒有列出來。
一 、解析路徑:
1 取得檔案名稱:
basename();
給予一個包含有指向一個檔案的全路徑的字串,本函數傳回基本的檔案名稱。如果檔名是以 suffix 結束的,那麼這部分也會被去掉。
eg:
$path = "/home/httpd/html/index.php"; $file = basename($path,".php"); // $file is set to "index"
2 得到目錄部分:
dirname();
給出一個包含有指向一個檔案的全路徑的字串,本函數回傳去掉名稱後的目錄名稱。
eg:
$path = "/etc/passwd"; $file = dirname($path); // $file is set to "/etc"
3 得到路徑關聯陣列
pathinfo();
得到一個指定路徑中的三個部分:目錄名,基本名,副檔名。
eg:
$pathinfo = pathinfo("www/test/index.html"); var_dump($pathinfo); // $path['dirname'] $path['basename'] $path['extenssion']
二、檔案類型
1. filetype();
回傳檔案的類型。可能的值有 fifo,char,dir,block,link,file 和 unknown。
eg:
echo filetype('/etc/passwd'); // file echo filetype('/etc/'); // dir
三、得到給定檔案有用資訊陣列(很有用)
1. fstat();
透過已開啟的檔案指標取得資訊
取得由檔案指標handle 所開啟檔案的統計檔案」資訊.本函數和 stat() 函數相似,除了它是作用於已開啟的檔案指標而不是檔案名稱。
eg:
// 打开文件 $fp = fopen("/etc/passwd", "r"); // 取得统计信息 $fstat = fstat($fp); // 关闭文件 fclose($fp); // 只显示关联数组部分 print_r(array_slice($fstat, 13));
2. stat()
取得由filename 指定的檔案的統計資訊(類比fstat())
四、計算大小
1. filesize()
傳回檔案大小的位元組數,如果出錯返回FALSE 並產生一條E_WARNING 等級的錯誤。
eg:
// 输出类似:somefile.txt: 1024 bytes $filename = 'somefile.txt'; echo $filename . ': ' . filesize($filename) . ' bytes';
2. disk_free_space()
取得目錄所在磁碟分割的可用空間(位元組單位)
eg
// $df 包含根目录下可用的字节数 $df = disk_free_space("/"); //在 Windows 下: disk_free_space("C:"); disk_free_space("D:");
3.space3. (同上,換掉函數)
另:如需要計算目錄大小,可以寫遞歸函數來實作
程式碼
function dir_size($dir){ $dir_size = 0; if($dh = @opendir($dir)){ while(($filename = readdir($dh)) != false){ if($filename !='.' and $filename !='..'){ if(is_file($dir.'/'.$filename)){ $dir_size +=filesize($dir.'/'.$filename); }else if(is_dir($dir.'/'.$filename)){ $dir_size +=dir_size($dir.'/'.$filename); } } }#end while }# end opendir @closedir($dh); return $dir_size; } #end function五、存取與修改時間
1. fileatime(): 最後存取時間
2. filectime(): 最後改變時間(任何資料的修改)3. filemtime(): 最後修改時間(指僅是內容修改)
1. fopen -- 開啟檔案或URL
'r' 只讀方式打開,將檔案指標指向檔案頭。
'r+' 讀寫方式打開,將檔案指標指向檔案頭。
'w' 寫入方式打開,將檔案指標指向檔案頭並將檔案大小截為零。如果文件不存在則嘗試建立之。
'w+' 讀寫方式打開,將檔案指標指向檔案頭並將檔案大小截為零。如果文件不存在則嘗試建立之。
'a' 寫入方式打開,將文件指標指向文件末尾。如果文件不存在則嘗試建立之。
'a+' 讀寫方式打開,將文件指標指向文件末尾。如果文件不存在則嘗試建立之。
'x' 建立並以寫入方式打開,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 呼叫失敗並傳回 FALSE,
'x+' 建立並以讀寫方式打開,將檔案指標指向檔案頭。如果檔案已存在,則fopen() 呼叫失敗並回傳FALSE
eg:
$handle = fopen("/home/rasmus/file.txt", "r");
和file_get_contents() 一樣,只除了file() 將檔案傳回為一個陣列。數組中的每個單元都是檔案中對應的一行,包括換行符在內。如果失敗 file() 回傳 FALSE。
eg:
代碼
$lines = file('http://www.example.com/'); // 在数组中循环,显示 HTML 的源文件并加上行号。 foreach ($lines as $line_num => $line) { echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; } // 另一个例子将 web 页面读入字符串。参见 file_get_contents()。 $html = implode('', file ('http://www.example.com/'));
3. fgets -- 從檔案指標中讀取一行
從 handle 指向的檔案中讀取一行並傳回長度最多為 length - 1 字節的字串。碰到換行符號(包括在回傳值中)、EOF 或已經讀取了 length - 1 位元組後停止(看先碰到那一種情況)。如果沒有指定 length,則預設為 1K,或說 1024 位元組。
$handle = @fopen("/tmp/inputfile.txt", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); }
4. fgetss -- 從檔案指標讀取一行並過濾掉 HTML 標記
和 fgets() 相同,只除了 fgetss 嘗試從讀取的文字中去掉任何 HTML 和 PHP 標記。
可以用可選的第三個參數指定哪些標記不被去掉
另:對的目錄的操作:
1. opendir -- 打開目錄句柄,打開一個目錄句柄,可用於之後的closedir() ,readdir() 和rewinddir() 調用中。2. readdir -- 從目錄句柄中讀取條目,返回目錄中下一個檔案的檔案名稱。檔案名稱以在檔案系統中的排序傳回。
eg:
// 注意在 4.0.0-RC2 之前不存在 !== 运算符 if ($handle = opendir('/path/to/files')) { echo "Directory handle: $handle\n"; echo "Files:\n"; while (false !== ($file = readdir($handle))) { echo "$file\n"; } while ($file = readdir($handle)) { echo "$file\n"; } closedir($handle); }
3. scandir -- 列出指定路徑中的檔案和目錄(很有用),傳回一個 directory 中的檔案和目錄。
預設的排序順序是按字母升序排列。如果使用了可選參數 sorting_order(設為 1),則排序順序是按字母降序排列。eg:
$dir = '/tmp'; $files1 = scandir($dir); $files2 = scandir($dir, 1); print_r($files1); print_r($files2);
另外注:
七、 对文件属性的操作(操作系统环境不同,可能有所不一样,这点要注意)
1文件是否可读:
boolis_readable ( string filename )
如果由 filename 指定的文件或目录存在并且可读则返回 TRUE。
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。
2 文件是否可写
bool is_writable ( string filename )
如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制
3 检查文件是否存在
boolfile_exists ( string filename )
如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE
以上就是(进阶篇) PHP常用的文件操作函数的内容,更多相关内容请关注PHP中文网(www.php.cn)!

絕對會話超時從會話創建時開始計時,閒置會話超時則從用戶無操作時開始計時。絕對會話超時適用於需要嚴格控制會話生命週期的場景,如金融應用;閒置會話超時適合希望用戶長時間保持會話活躍的應用,如社交媒體。

服務器會話失效可以通過以下步驟解決:1.檢查服務器配置,確保會話設置正確。 2.驗證客戶端cookies,確認瀏覽器支持並正確發送。 3.檢查會話存儲服務,如Redis,確保其正常運行。 4.審查應用代碼,確保會話邏輯正確。通過這些步驟,可以有效診斷和修復會話問題,提升用戶體驗。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

設置httponly標誌對會話cookie至關重要,因為它能有效防止XSS攻擊,保護用戶會話信息。具體來說,1)httponly標誌阻止JavaScript訪問cookie,2)在PHP和Flask中可以通過setcookie和make_response設置該標誌,3)儘管不能防範所有攻擊,但應作為整體安全策略的一部分。

phpsessions solvathepromblymaintainingStateAcrossMultipleHttpRequestsbyStoringDataTaNthEserVerAndAssociatingItwithaIniquesestionId.1)他們儲存了AtoredAtaserver side,通常是Infilesordatabases,InseasessessionIdStoreDistordStoredStoredStoredStoredStoredStoredStoreDoreToreTeReTrestaa.2)

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考慮使用AttActAcks.s.s.4)

會話再生是指在用戶進行敏感操作時生成新會話ID並使舊ID失效,以防會話固定攻擊。實現步驟包括:1.檢測敏感操作,2.生成新會話ID,3.銷毀舊會話ID,4.更新用戶端會話信息。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器