索引自定义函数
目录自定义函数
PHP中并不提供查询目录大小、复制目录、删除有文件的目录的函数,我们需要自己编写
这个函数只要传递一个url,就能递归查询目录中的文件大小,从而统计出目录大小
<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">function</span> dirSize(<span style="color: #800080;">$dir</span><span style="color: #000000;">){</span><span style="color: #008080;"> 3</span> <span style="color: #800080;">$dirsize</span> = 0<span style="color: #000000;">;</span><span style="color: #008080;"> 4</span> <span style="color: #800080;">$url</span> = <span style="color: #008080;">opendir</span>(<span style="color: #800080;">$dir</span><span style="color: #000000;">);</span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">while</span>(<span style="color: #800080;">$filename</span> = <span style="color: #008080;">readdir</span>(<span style="color: #800080;">$url</span><span style="color: #000000;">)){</span><span style="color: #008080;"> 6</span> <span style="color: #800080;">$file</span> = <span style="color: #800080;">$dir</span>.'/'.<span style="color: #800080;">$filename</span><span style="color: #000000;">;</span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">if</span>(!(<span style="color: #800080;">$filename</span>=='.' || <span style="color: #800080;">$filename</span>=='..'<span style="color: #000000;">)){</span><span style="color: #008080;"> 8</span> <span style="color: #0000ff;">if</span>(<span style="color: #008080;">is_dir</span>(<span style="color: #800080;">$file</span><span style="color: #000000;">)){</span><span style="color: #008080;"> 9</span> <span style="color: #800080;">$dirsize</span> += dirSize(<span style="color: #800080;">$file</span><span style="color: #000000;">);</span><span style="color: #008080;">10</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{</span><span style="color: #008080;">11</span> <span style="color: #800080;">$dirsize</span> += <span style="color: #008080;">filesize</span>(<span style="color: #800080;">$file</span><span style="color: #000000;">);</span><span style="color: #008080;">12</span> <span style="color: #000000;"> }</span><span style="color: #008080;">13</span> <span style="color: #000000;"> }</span><span style="color: #008080;">14</span> <span style="color: #000000;"> }</span><span style="color: #008080;">15</span> <span style="color: #008080;">closedir</span>(<span style="color: #800080;">$url</span><span style="color: #000000;">);</span><span style="color: #008080;">16</span> <span style="color: #0000ff;">return</span> <span style="color: #800080;">$dirsize</span><span style="color: #000000;">;</span><span style="color: #008080;">17</span> }
这个函数需要传递两个url,分别是旧目录和新目录,就能复制该目录及文件
<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">function</span> copyDir(<span style="color: #800080;">$dirSrc</span>,<span style="color: #800080;">$dirTo</span><span style="color: #000000;">){</span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">if</span>(<span style="color: #008080;">is_file</span>(<span style="color: #800080;">$dirTo</span><span style="color: #000000;">))</span><span style="color: #008080;"> 4</span> <span style="color: #000000;"> {</span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">echo</span> '目标不是目录不能创建!'<span style="color: #000000;">;</span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">return</span><span style="color: #000000;">;</span><span style="color: #008080;"> 7</span> <span style="color: #000000;"> }</span><span style="color: #008080;"> 8</span> <span style="color: #0000ff;">if</span>(!<span style="color: #008080;">file_exists</span>(<span style="color: #800080;">$dirTo</span><span style="color: #000000;">))</span><span style="color: #008080;"> 9</span> <span style="color: #000000;"> {</span><span style="color: #008080;">10</span> <span style="color: #008080;">mkdir</span>(<span style="color: #800080;">$dirTo</span><span style="color: #000000;">);</span><span style="color: #008080;">11</span> <span style="color: #000000;"> }</span><span style="color: #008080;">12</span> <span style="color: #800080;">$dir_handle</span> = @<span style="color: #008080;">opendir</span>(<span style="color: #800080;">$dirSrc</span><span style="color: #000000;">);</span><span style="color: #008080;">13</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$dir_handle</span><span style="color: #000000;">)</span><span style="color: #008080;">14</span> <span style="color: #000000;"> {</span><span style="color: #008080;">15</span> <span style="color: #0000ff;">while</span>(<span style="color: #800080;">$filename</span> = <span style="color: #008080;">readdir</span>(<span style="color: #800080;">$dir_handle</span><span style="color: #000000;">))</span><span style="color: #008080;">16</span> <span style="color: #000000;"> {</span><span style="color: #008080;">17</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$filename</span>!="." && <span style="color: #800080;">$filename</span>!=".."<span style="color: #000000;">)</span><span style="color: #008080;">18</span> <span style="color: #000000;"> {</span><span style="color: #008080;">19</span> <span style="color: #800080;">$subSrcFile</span> = <span style="color: #800080;">$dirSrc</span> . "\\".<span style="color: #800080;">$filename</span><span style="color: #000000;">;</span><span style="color: #008080;">20</span> <span style="color: #800080;">$subToFile</span> = <span style="color: #800080;">$dirTo</span> . "\\".<span style="color: #800080;">$filename</span><span style="color: #000000;">;</span><span style="color: #008080;">21</span> <span style="color: #008080;">22</span> <span style="color: #0000ff;">if</span>(<span style="color: #008080;">is_dir</span>(<span style="color: #800080;">$subSrcFile</span><span style="color: #000000;">))</span><span style="color: #008080;">23</span> <span style="color: #000000;"> {</span><span style="color: #008080;">24</span> copyDir(<span style="color: #800080;">$subSrcFile</span>, <span style="color: #800080;">$subToFile</span><span style="color: #000000;">);</span><span style="color: #008080;">25</span> <span style="color: #000000;"> }</span><span style="color: #008080;">26</span> <span style="color: #0000ff;">if</span>(<span style="color: #008080;">is_file</span>(<span style="color: #800080;">$subSrcFile</span><span style="color: #000000;">))</span><span style="color: #008080;">27</span> <span style="color: #000000;"> {</span><span style="color: #008080;">28</span> <span style="color: #008080;">copy</span>(<span style="color: #800080;">$subSrcFile</span>, <span style="color: #800080;">$subToFile</span><span style="color: #000000;">);</span><span style="color: #008080;">29</span> <span style="color: #000000;"> }</span><span style="color: #008080;">30</span> <span style="color: #000000;"> }</span><span style="color: #008080;">31</span> <span style="color: #000000;"> }</span><span style="color: #008080;">32</span> <span style="color: #008080;">closedir</span>(<span style="color: #800080;">$dir_handle</span><span style="color: #000000;">);</span><span style="color: #008080;">33</span> <span style="color: #000000;"> }</span><span style="color: #008080;">34</span> }
这个函数只要传递一个url,就能递归删除目录及子目录的文件,从而删除目录
<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">function</span> rmDirAll(<span style="color: #800080;">$url</span><span style="color: #000000;">){</span><span style="color: #008080;"> 3</span> <span style="color: #008000;">//</span><span style="color: #008000;">检测要打开目录是否存在</span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">if</span>(!<span style="color: #800080;">$dir</span>=@<span style="color: #008080;">opendir</span>(<span style="color: #800080;">$url</span><span style="color: #000000;">)){</span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;"> 6</span> <span style="color: #000000;"> }</span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">while</span>(<span style="color: #0000ff;">false</span> !==(<span style="color: #800080;">$file</span>=<span style="color: #008080;">readdir</span>(<span style="color: #800080;">$dir</span><span style="color: #000000;">))){</span><span style="color: #008080;"> 8</span> <span style="color: #008000;">//</span><span style="color: #008000;">排除当前目录与父级目录</span><span style="color: #008080;"> 9</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$file</span>!=="."&&<span style="color: #800080;">$file</span>!==".."<span style="color: #000000;">){</span><span style="color: #008080;">10</span> <span style="color: #800080;">$file</span>=<span style="color: #800080;">$url</span> .'/'. <span style="color: #800080;">$file</span><span style="color: #000000;">;</span><span style="color: #008080;">11</span> <span style="color: #008000;">//</span><span style="color: #008000;">递归删除目录</span><span style="color: #008080;">12</span> <span style="color: #0000ff;">if</span>(<span style="color: #008080;">is_dir</span>(<span style="color: #800080;">$file</span><span style="color: #000000;">)){</span><span style="color: #008080;">13</span> rmDirAll(<span style="color: #800080;">$file</span><span style="color: #000000;">);</span><span style="color: #008080;">14</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{</span><span style="color: #008080;">15</span> <span style="color: #0000ff;">if</span>(@<span style="color: #008080;">unlink</span>(<span style="color: #800080;">$file</span><span style="color: #000000;">)){</span><span style="color: #008080;">16</span> <span style="color: #0000ff;">continue</span><span style="color: #000000;">;</span><span style="color: #008080;">17</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{</span><span style="color: #008080;">18</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">19</span> <span style="color: #000000;"> }</span><span style="color: #008080;">20</span> <span style="color: #000000;"> }</span><span style="color: #008080;">21</span> <span style="color: #000000;"> }</span><span style="color: #008080;">22</span> <span style="color: #0000ff;">if</span>(@<span style="color: #008080;">rmdir</span>(<span style="color: #800080;">$url</span><span style="color: #000000;">)){</span><span style="color: #008080;">23</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #000000;">;</span><span style="color: #008080;">24</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{</span><span style="color: #008080;">25</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">26</span> <span style="color: #000000;"> }</span><span style="color: #008080;">27</span> <span style="color: #000000;"> }</span><span style="color: #008080;">28</span> }

熱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)

php blob轉file的方法:1.建立一個php範例檔;2、透過「function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })} 」方法實作Blob轉File即可。

使用Java的File.length()函數取得檔案的大小檔案大小是在處理檔案作業時很常見的一個需求,Java提供了一個很方便的方法來取得檔案的大小,即使用File類別的length()方法。本文將介紹如何使用此方法來取得檔案的大小,並給出對應的程式碼範例。首先,我們需要建立一個File物件來表示我們想要取得大小的檔案。以下是建立File物件的方法:Filef

想了解更多關於開源的內容,請造訪:51CTO鴻蒙開發者社群https://ost.51cto.com運行環境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、建立應用程式點擊File- >newFile->CreateProgect。選擇模版:【OpenHarmony】EmptyAbility:填寫項目名,shici,應用包名com.nut.shici,應用儲存位置XXX(不要有中文,特殊字符,空格)。 CompileSDK10,Model:Stage。 Device

使用Java的File.renameTo()函數重命名檔案在Java程式設計中,我們經常需要對檔案進行重命名的操作。 Java提供了File類別來處理檔案操作,其中的renameTo()函數可以方便地重新命名檔案。本文將介紹如何使用Java的File.renameTo()函數來重新命名文件,並提供對應的程式碼範例。 File.renameTo()函數是File類別的一個方法,

使用java的File.getParent()函數取得檔案的父路徑在Java程式設計中,我們經常需要操作檔案和資料夾。有時候,我們需要取得一個檔案的父路徑,也就是該檔案所在資料夾的路徑。 Java的File類別提供了getParent()方法用來取得檔案或資料夾的父路徑。 File類別是Java對檔案和資料夾的抽象表示,它提供了一系列操作檔案和資料夾的方法。其中,get

使用java的File.getParentFile()函數取得檔案的父目錄在Java程式設計中,我們經常需要操作檔案和資料夾。當我們需要取得檔案的父目錄時,可以使用Java提供的File.getParentFile()函數來完成。本文將介紹如何使用這個函數並提供程式碼範例。 Java中的File類別是用於操作檔案和資料夾的主要類別。它提供了許多方法來取得和操作文件的屬性

如何使用Java中的File.delete()方法刪除檔案或目錄?概述:在Java中,我們可以使用File類別的delete()方法來刪除檔案或目錄。此方法用於刪除指定的檔案或目錄。但是要注意的是,該方法只能刪除空目錄或沒有被其他程式開啟的檔案。如果檔案或目錄刪除失敗,可以透過擷取IOException異常來找出特定原因。步驟一:導入相關的套件首先,我們需要

使用Java的File.mkdirs()函數建立多層目錄在Java中,我們經常需要建立資料夾來儲存和組織檔案。而有時候,我們需要建立多層目錄,也就是包含子資料夾的資料夾。 Java提供了File類別的mkdirs()函數來實作這個功能。 File類是Java中處理文件和目錄的類,它提供了一系列操作文件和目錄的方法。其中,mkdirs()函數是建立多層目錄的函數。下
