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

想了解更多关于开源的内容,请访问: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.length()函数获取文件的大小文件大小是在处理文件操作时很常见的一个需求,Java提供了一个很方便的方法来获取文件的大小,即使用File类的length()方法。本文将介绍如何使用该方法来获取文件的大小,并给出相应的代码示例。首先,我们需要创建一个File对象来表示我们想要获取大小的文件。以下是创建File对象的方法:Filef

php blob转file的方法:1、创建一个php示例文件;2、通过“function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })}”方法实现Blob转File即可。

使用Java的File.renameTo()函数重命名文件在Java编程中,我们经常需要对文件进行重命名的操作。Java提供了File类来处理文件操作,其中的renameTo()函数可以方便地重命名文件。本文将介绍如何使用Java的File.renameTo()函数来重命名文件,并提供相应的代码示例。File.renameTo()函数是File类的一个方法,

使用java的File.getParentFile()函数获取文件的父目录在Java编程中,我们经常需要操作文件和文件夹。当我们需要获取文件的父目录时,可以使用Java提供的File.getParentFile()函数来完成。本文将介绍如何使用这个函数并提供代码示例。Java中的File类是用于操作文件和文件夹的主要类。它提供了许多方法来获取和操作文件的属性

使用java的File.getParent()函数获取文件的父路径在Java编程中,我们经常需要操作文件和文件夹。有时候,我们需要获取一个文件的父路径,也就是该文件所在文件夹的路径。Java的File类提供了getParent()方法用于获取文件或文件夹的父路径。File类是Java对文件和文件夹的抽象表示,它提供了一系列操作文件和文件夹的方法。其中,get

如何使用Java中的File.delete()方法删除文件或目录?概述:在Java中,我们可以使用File类的delete()方法来删除文件或目录。该方法用于删除指定的文件或目录。但是需要注意的是,该方法只能删除空目录或者没有被其他程序打开的文件。如果文件或目录删除失败,可以通过捕获IOException异常来查找具体原因。步骤一:导入相关的包首先,我们需要

基本知识Android架构Kernel内核层漏洞危害极大,通用性强驱动由于多而杂,也可能存在不少漏洞Libaries系统运行库层系统中间件形式提供的运行库包括libc、WebKit、SQLite等等AndroidRunTimeDalvik虚拟机和内核库FrameWork应用框架层提供一系列的服务和API的接口活动管理器内容提供器视图资源管理器通知管理器Application应用层系统应用主屏幕Home、联系人Contact、电话Phone、浏览器Browser其他应用开发者使用应用程序框架层的A


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

SublimeText3 Linux新版
SublimeText3 Linux最新版

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

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

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