顯示所有檔案和資料夾 php檔案及資料夾操作(建立、刪除、移動、複製)
建立FileUtil.php文件,內容及呼叫方式如下:
<?<span>php </span><span>/*</span><span>* * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::createFile('b/1/2/3'); 测试建立文件 在b/1/2/文件夹下面建一个3文件 * FileUtil::createFile('b/1/2/3.exe'); 测试建立文件 在b/1/2/文件夹下面建一个3.exe文件 * FileUtil::copyDir('b','d/e'); 测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去 * FileUtil::copyFile('b/1/2/3.exe','b/b/3.exe'); 测试复制文件 建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去 * FileUtil::moveDir('a/','b/c'); 测试移动文件夹 建立一个b/c文件夹,并把a文件夹下的内容移动进去,并删除a文件夹 * FileUtil::moveFile('b/1/2/3.exe','b/d/3.exe'); 测试移动文件 建立一个b/d文件夹,并把b/1/2中的3.exe移动进去 * FileUtil::unlinkFile('b/d/3.exe'); 测试删除文件 删除b/d/3.exe文件 * FileUtil::unlinkDir('d'); 测试删除文件夹 删除d文件夹 </span><span>*/</span><span>class</span><span> FileUtil { </span><span>/*</span><span>* * 建立文件夹 * * @param string $aimUrl * @return viod </span><span>*/</span><span>function</span> createDir(<span>$aimUrl</span><span>) { </span><span>$aimUrl</span> = <span>str_replace</span>('', '/', <span>$aimUrl</span><span>); </span><span>$aimDir</span> = ''<span>; </span><span>$arr</span> = <span>explode</span>('/', <span>$aimUrl</span><span>); </span><span>$result</span> = <span>true</span><span>; </span><span>foreach</span> (<span>$arr</span><span>as</span><span>$str</span><span>) { </span><span>$aimDir</span> .= <span>$str</span> . '/'<span>; </span><span>if</span> (!<span>file_exists</span>(<span>$aimDir</span><span>)) { </span><span>$result</span> = <span>mkdir</span>(<span>$aimDir</span><span>); } } </span><span>return</span><span>$result</span><span>; } </span><span>/*</span><span>* * 建立文件 * * @param string $aimUrl * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean </span><span>*/</span><span>function</span> createFile(<span>$aimUrl</span>, <span>$overWrite</span> = <span>false</span><span>) { </span><span>if</span> (<span>file_exists</span>(<span>$aimUrl</span>) && <span>$overWrite</span> == <span>false</span><span>) { </span><span>return</span><span>false</span><span>; } </span><span>elseif</span> (<span>file_exists</span>(<span>$aimUrl</span>) && <span>$overWrite</span> == <span>true</span><span>) { FileUtil </span>:: unlinkFile(<span>$aimUrl</span><span>); } </span><span>$aimDir</span> = <span>dirname</span>(<span>$aimUrl</span><span>); FileUtil </span>:: createDir(<span>$aimDir</span><span>); </span><span>touch</span>(<span>$aimUrl</span><span>); </span><span>return</span><span>true</span><span>; } </span><span>/*</span><span>* * 移动文件夹 * * @param string $oldDir * @param string $aimDir * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean </span><span>*/</span><span>function</span> moveDir(<span>$oldDir</span>, <span>$aimDir</span>, <span>$overWrite</span> = <span>false</span><span>) { </span><span>$aimDir</span> = <span>str_replace</span>('', '/', <span>$aimDir</span><span>); </span><span>$aimDir</span> = <span>substr</span>(<span>$aimDir</span>, -1) == '/' ? <span>$aimDir</span> : <span>$aimDir</span> . '/'<span>; </span><span>$oldDir</span> = <span>str_replace</span>('', '/', <span>$oldDir</span><span>); </span><span>$oldDir</span> = <span>substr</span>(<span>$oldDir</span>, -1) == '/' ? <span>$oldDir</span> : <span>$oldDir</span> . '/'<span>; </span><span>if</span> (!<span>is_dir</span>(<span>$oldDir</span><span>)) { </span><span>return</span><span>false</span><span>; } </span><span>if</span> (!<span>file_exists</span>(<span>$aimDir</span><span>)) { FileUtil </span>:: createDir(<span>$aimDir</span><span>); } @ </span><span>$dirHandle</span> = <span>opendir</span>(<span>$oldDir</span><span>); </span><span>if</span> (!<span>$dirHandle</span><span>) { </span><span>return</span><span>false</span><span>; } </span><span>while</span> (<span>false</span> !== (<span>$file</span> = <span>readdir</span>(<span>$dirHandle</span><span>))) { </span><span>if</span> (<span>$file</span> == '.' || <span>$file</span> == '..'<span>) { </span><span>continue</span><span>; } </span><span>if</span> (!<span>is_dir</span>(<span>$oldDir</span> . <span>$file</span><span>)) { FileUtil </span>:: moveFile(<span>$oldDir</span> . <span>$file</span>, <span>$aimDir</span> . <span>$file</span>, <span>$overWrite</span><span>); } </span><span>else</span><span> { FileUtil </span>:: moveDir(<span>$oldDir</span> . <span>$file</span>, <span>$aimDir</span> . <span>$file</span>, <span>$overWrite</span><span>); } } </span><span>closedir</span>(<span>$dirHandle</span><span>); </span><span>return</span><span>rmdir</span>(<span>$oldDir</span><span>); } </span><span>/*</span><span>* * 移动文件 * * @param string $fileUrl * @param string $aimUrl * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean </span><span>*/</span><span>function</span> moveFile(<span>$fileUrl</span>, <span>$aimUrl</span>, <span>$overWrite</span> = <span>false</span><span>) { </span><span>if</span> (!<span>file_exists</span>(<span>$fileUrl</span><span>)) { </span><span>return</span><span>false</span><span>; } </span><span>if</span> (<span>file_exists</span>(<span>$aimUrl</span>) && <span>$overWrite</span> = <span>false</span><span>) { </span><span>return</span><span>false</span><span>; } </span><span>elseif</span> (<span>file_exists</span>(<span>$aimUrl</span>) && <span>$overWrite</span> = <span>true</span><span>) { FileUtil </span>:: unlinkFile(<span>$aimUrl</span><span>); } </span><span>$aimDir</span> = <span>dirname</span>(<span>$aimUrl</span><span>); FileUtil </span>:: createDir(<span>$aimDir</span><span>); </span><span>rename</span>(<span>$fileUrl</span>, <span>$aimUrl</span><span>); </span><span>return</span><span>true</span><span>; } </span><span>/*</span><span>* * 删除文件夹 * * @param string $aimDir * @return boolean </span><span>*/</span><span>function</span> unlinkDir(<span>$aimDir</span><span>) { </span><span>$aimDir</span> = <span>str_replace</span>('', '/', <span>$aimDir</span><span>); </span><span>$aimDir</span> = <span>substr</span>(<span>$aimDir</span>, -1) == '/' ? <span>$aimDir</span> : <span>$aimDir</span> . '/'<span>; </span><span>if</span> (!<span>is_dir</span>(<span>$aimDir</span><span>)) { </span><span>return</span><span>false</span><span>; } </span><span>$dirHandle</span> = <span>opendir</span>(<span>$aimDir</span><span>); </span><span>while</span> (<span>false</span> !== (<span>$file</span> = <span>readdir</span>(<span>$dirHandle</span><span>))) { </span><span>if</span> (<span>$file</span> == '.' || <span>$file</span> == '..'<span>) { </span><span>continue</span><span>; } </span><span>if</span> (!<span>is_dir</span>(<span>$aimDir</span> . <span>$file</span><span>)) { FileUtil </span>:: unlinkFile(<span>$aimDir</span> . <span>$file</span><span>); } </span><span>else</span><span> { FileUtil </span>:: unlinkDir(<span>$aimDir</span> . <span>$file</span><span>); } } </span><span>closedir</span>(<span>$dirHandle</span><span>); </span><span>return</span><span>rmdir</span>(<span>$aimDir</span><span>); } </span><span>/*</span><span>* * 删除文件 * * @param string $aimUrl * @return boolean </span><span>*/</span><span>function</span> unlinkFile(<span>$aimUrl</span><span>) { </span><span>if</span> (<span>file_exists</span>(<span>$aimUrl</span><span>)) { </span><span>unlink</span>(<span>$aimUrl</span><span>); </span><span>return</span><span>true</span><span>; } </span><span>else</span><span> { </span><span>return</span><span>false</span><span>; } } </span><span>/*</span><span>* * 复制文件夹 * * @param string $oldDir * @param string $aimDir * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean </span><span>*/</span><span>function</span> copyDir(<span>$oldDir</span>, <span>$aimDir</span>, <span>$overWrite</span> = <span>false</span><span>) { </span><span>$aimDir</span> = <span>str_replace</span>('', '/', <span>$aimDir</span><span>); </span><span>$aimDir</span> = <span>substr</span>(<span>$aimDir</span>, -1) == '/' ? <span>$aimDir</span> : <span>$aimDir</span> . '/'<span>; </span><span>$oldDir</span> = <span>str_replace</span>('', '/', <span>$oldDir</span><span>); </span><span>$oldDir</span> = <span>substr</span>(<span>$oldDir</span>, -1) == '/' ? <span>$oldDir</span> : <span>$oldDir</span> . '/'<span>; </span><span>if</span> (!<span>is_dir</span>(<span>$oldDir</span><span>)) { </span><span>return</span><span>false</span><span>; } </span><span>if</span> (!<span>file_exists</span>(<span>$aimDir</span><span>)) { FileUtil </span>:: createDir(<span>$aimDir</span><span>); } </span><span>$dirHandle</span> = <span>opendir</span>(<span>$oldDir</span><span>); </span><span>while</span> (<span>false</span> !== (<span>$file</span> = <span>readdir</span>(<span>$dirHandle</span><span>))) { </span><span>if</span> (<span>$file</span> == '.' || <span>$file</span> == '..'<span>) { </span><span>continue</span><span>; } </span><span>if</span> (!<span>is_dir</span>(<span>$oldDir</span> . <span>$file</span><span>)) { FileUtil </span>:: copyFile(<span>$oldDir</span> . <span>$file</span>, <span>$aimDir</span> . <span>$file</span>, <span>$overWrite</span><span>); } </span><span>else</span><span> { FileUtil </span>:: copyDir(<span>$oldDir</span> . <span>$file</span>, <span>$aimDir</span> . <span>$file</span>, <span>$overWrite</span><span>); } } </span><span>return</span><span>closedir</span>(<span>$dirHandle</span><span>); } </span><span>/*</span><span>* * 复制文件 * * @param string $fileUrl * @param string $aimUrl * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean </span><span>*/</span><span>function</span> copyFile(<span>$fileUrl</span>, <span>$aimUrl</span>, <span>$overWrite</span> = <span>false</span><span>) { </span><span>if</span> (!<span>file_exists</span>(<span>$fileUrl</span><span>)) { </span><span>return</span><span>false</span><span>; } </span><span>if</span> (<span>file_exists</span>(<span>$aimUrl</span>) && <span>$overWrite</span> == <span>false</span><span>) { </span><span>return</span><span>false</span><span>; } </span><span>elseif</span> (<span>file_exists</span>(<span>$aimUrl</span>) && <span>$overWrite</span> == <span>true</span><span>) { FileUtil </span>:: unlinkFile(<span>$aimUrl</span><span>); } </span><span>$aimDir</span> = <span>dirname</span>(<span>$aimUrl</span><span>); FileUtil </span>:: createDir(<span>$aimDir</span><span>); </span><span>copy</span>(<span>$fileUrl</span>, <span>$aimUrl</span><span>); </span><span>return</span><span>true</span><span>; } } </span>?>
<span>$fu</span> = <span>new</span><span> FileUtil(); </span><span>$fu</span>->copyFile('a/1/2/3', 'a/1/2/4');

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...
