這篇文章主要介紹了關於PHP檔案程式設計的介紹,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
1 取得檔案資訊
1.1 第一種方式(fopen、fstat、file_exists)
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ // 检查文件或目录是否存在,存在则返回 TRUE,否则返回 FALSE $fp = fopen($file_full_path, 'r'); // 打开文件或url,成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。 $fileinfo_arr = fstat($fp); // 通过已打开的文件指针取得文件信息,返回一个数组具有该文件的统计信息 echo '<pre class="brush:php;toolbar:false">'; var_dump($fileinfo_arr); echo '文件的大小是:' . $fileinfo_arr['size'] . '个字节'; echo '文件的创建时间是:' . date('Y-m-d H:i:s', $fileinfo_arr['ctime']); echo '文件的访问时间是:' . date('Y-m-d H:i:s', $fileinfo_arr['atime']); echo '文件的修改时间是:' . date('Y-m-d H:i:s', $fileinfo_arr['mtime']); }else{ echo '文件不存在'; }
1.2 第二種方式
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ echo '文件的大小是:' . filesize($file_full_path); echo '文件的类型是:' . filetype($file_full_path); echo '文件的创建时间是:' . date('Y-m-d H:i:s', filectime($file_full_path)); echo '文件的访问时间是:' . date('Y-m-d H:i:s', fileatime($file_full_path)); echo '文件的修改时间是:' . date('Y-m-d H:i:s', filemtime($file_full_path)); }else{ echo '文件不存在'; }
2 讀取檔案內容
2.1 第一種方式,fread
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ // 1、打开文件 $fp = fopen($file_full_path, 'r'); // 2、获取文件的大小 $file_size = filesize($file_full_path); // 3、读取内容 $con_str = fread($fp, $file_size); // 返回所读取的字符串, 或者在失败时返回 FALSE。 fclose($fp); // 替换换行符 $con_str = str_replace("\r\n", '<br>', $con_str); $con_str = str_replace("\n", '<br>', $con_str); // 替换 tab $con_str = str_replace(" ", " ", $con_str); echo $con_str; }else{ echo '文件不存在'; }
2.2 第二種方式,feof
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ $fp = fopen($file_full_path, 'r'); // 设置缓冲 $buffer = ''; $buffer_size = 1024; $con_str = ''; while(!feof($fp)){ // 测试文件指针是否到了文件结束的位置,到达返回true,否则返回false $buffer = fread($fp, $buffer_size); $con_str .= $buffer; } // 关闭文件 fclose($fp); $con_str = str_replace("\r\n", '<br>', $con_str); $con_str = str_replace("\n", '<br>', $con_str); $con_str = str_replace(" ", ' ', $con_str); echo $con_str; }else{ echo '文件不存在'; }
2.3 第三種方式,file_get_contents
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ $con_str = file_get_contents($file_full_path); // 将整个文件读入一个字符串 $con_str = str_replace("\r\n", '<br>', $con_str); $con_str = str_replace("\n", '<br>', $con_str); $con_str = str_replace(" ", ' ', $con_str); echo $con_str; }else{ echo '文件不存在'; }
3 建立文件,並寫入內容
3.1 案例1
<?php $file_full_path = './test.txt'; if(!file_exists($file_full_path)){ if($fp = fopen($file_full_path, 'w')){ // 覆盖写入10句helloworld $con = ''; for($i=0; $i<10; $i++){ $con .= "HelloWorld\r\n"; } // 写入文件 fwrite($fp, $con); // fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。 fclose($fp); }else{ echo '创建文件失败'; } }else{ echo '文件已经存在'; }
3.2 案例2,file_put_contents
<?php $file_full_path = './test.txt'; if(!file_exists($file_full_path)){ $con = ''; for($i=0; $i<10; $i++){ $con .= "helloworld\r\n"; } // 默认是覆盖写,可以追加FILE_APPEND参数,改为追加写。 file_put_contents($file_full_path, $con); // 和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。 }else{ echo '已经存在该文件'; }
4 刪除檔案
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ if(unlink($file_full_path)){ echo '<br>删除成功'; }else{ echo '<br>删除失败'; } }else{ echo '文件不存在,无法删除'; }
5 修改檔名
<?php $file_full_path = './test.txt'; $file_new_full_path = './王八.txt'; $file_new_full_path = iconv('utf-8', 'gbk', $file_new_full_path); if(file_exists($file_full_path)){ if(rename($file_full_path, $file_new_full_path)){ // 重命名一个文件或目录 echo '改名成功!'; }else{ echo '改名失败!'; } }else{ echo '文件不存在'; }
6 操作檔目錄
6.1 建立一級目錄
<?php $dir_full_path = './abc'; // 判断有没有该目录 if(!is_dir($dir_full_path)){ if(mkdir($dir_full_path)){ echo '创建目录成功!'; }else{ echo '创建目录失败!'; } }else{ echo '已经存在该目录,无法再次创建'; }
6.2 建立多層次目錄
<?php $dir_full_path = './abc/edf/xyz'; if(!is_dir($dir_full_path)){ if(mkdir($dir_full_path, 0777, true)){ // true 表示递归创建 echo '创建目录成功'; }else{ echo '创建目录失败'; } }else{ echo '已经存在该目录,无法再次创建!'; }
6.3 刪除目錄(一階)
<?php $dir_full_path = './abc'; if(is_dir($dir_full_path)){ if(rmdir($dir_full_path)){ echo '删除目录成功'; }else{ echo '删除目录失败'; } }else{ echo '不存在该文件夹'; }
7 檔案程式設計的應用案例
7.1 如何拷貝一張圖片
rrreee7.2 遍歷某個資料夾,判斷資料夾下面內容分別是目錄和檔案
<?php $file_src_full_path = 'F:/壁纸.jpg'; $file_src_full_path = iconv('utf-8', 'gbk', $file_src_full_path); $file_des_full_path = 'D:/amp/WWW/萧山.jpg'; $file_des_full_path = iconv('utf-8', 'gbk', $file_des_full_path); if(file_exists($file_src_full_path)){ if(copy($file_src_full_path, $file_des_full_path)){ echo '拷贝成功'; }else{ echo '拷贝失败'; } }else{ echo '没有这个文件'; }
7.3 寫一個函數統計某個目錄所有檔案的大小
<?php $dir_full_path = 'D:/amp/WWW/'; if(is_dir($dir_full_path)){ $dir_handle = opendir($dir_full_path); // 如果成功则返回目录句柄的 resource,失败则返回 FALSE while(($file_name = readdir($dir_handle)) !== false){ // 成功则返回文件名 或者在失败时返回 FALSE if(is_dir($dir_full_path . $file_name)){ echo $file_name . '是目录<br>'; }else{ echo $file_name . '是文件<br>'; } } closedir($dir_handle); }else{ echo '不是目录,无法打开'; }
<?php $dir_name = 'D:/amp/WWW'; function getDirSize($dir_name){ $dir_size = 0; $dir_handle = opendir($dir_name); while(($file_name = readdir($dir_handle)) !== false){ $file = $dir_name . '/' . $file_name; // 文件全名 if($file_name!=='.' && $file_name!=='..'){ if(is_dir($file)){ $dir_size += getDirSize($file); }else{ $dir_size += filesize($file); } } } closedir($dir_handle); return $dir_size; } echo getDirSize($dir_name);
7.4 刪除某個目錄
<br/>
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
以上是PHP檔案程式設計的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

在PHP中,trait適用於需要方法復用但不適合使用繼承的情況。 1)trait允許在類中復用方法,避免多重繼承複雜性。 2)使用trait時需注意方法衝突,可通過insteadof和as關鍵字解決。 3)應避免過度使用trait,保持其單一職責,以優化性能和提高代碼可維護性。

依賴注入容器(DIC)是一種管理和提供對象依賴關係的工具,用於PHP項目中。 DIC的主要好處包括:1.解耦,使組件獨立,代碼易維護和測試;2.靈活性,易替換或修改依賴關係;3.可測試性,方便注入mock對象進行單元測試。

SplFixedArray在PHP中是一種固定大小的數組,適用於需要高性能和低內存使用量的場景。 1)它在創建時需指定大小,避免動態調整帶來的開銷。 2)基於C語言數組,直接操作內存,訪問速度快。 3)適合大規模數據處理和內存敏感環境,但需謹慎使用,因其大小固定。

PHP通過$\_FILES變量處理文件上傳,確保安全性的方法包括:1.檢查上傳錯誤,2.驗證文件類型和大小,3.防止文件覆蓋,4.移動文件到永久存儲位置。

JavaScript中處理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。 1.??返回第一個非null或非undefined的操作數。 2.??=將變量賦值為右操作數的值,但前提是該變量為null或undefined。這些操作符簡化了代碼邏輯,提高了可讀性和性能。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

記事本++7.3.1
好用且免費的程式碼編輯器

Dreamweaver CS6
視覺化網頁開發工具

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

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具