ディレクトリカスタム関数
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教程有兴趣的朋友有所帮助。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

オープン ソースの詳細については、次のサイトを参照してください。 51CTO Honmeng 開発者コミュニティ https://ost.51cto.com 実行環境 DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. アプリケーションを作成するには、[ファイル] をクリックします。 >新しいファイル ->プロジェクトの作成。テンプレートを選択します: [OpenHarmony] EmptyAbility: プロジェクト名 shici、アプリケーション パッケージ名 com.nut.shici、およびアプリケーションの保存場所 XXX (中国語、特殊文字、スペースは含まれません) を入力します。 CompileSDK10、モデル: ステージ。デバイス

ファイルのサイズを取得するには、Java の File.length() 関数を使用します。ファイル操作を扱うとき、ファイル サイズは非常に一般的な要件です。Java では、ファイルのサイズを取得するための非常に便利な方法、つまり length( ) File クラスのメソッド。この記事では、このメソッドを使用してファイルのサイズを取得する方法と、対応するコード例を紹介します。まず、サイズを取得したいファイルを表す File オブジェクトを作成する必要があります。 File オブジェクトを作成する方法は次のとおりです: Filef

PHP BLOB をファイルに変換する方法: 1. PHP サンプル ファイルを作成します; 2. 「function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })」を通じて} 」メソッドを使用して、Blob をファイルに変換できます。

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 で抽象表現したもので、ファイルとフォルダーを操作するための一連のメソッドを提供します。その中で、手に入れてください

Java で File.delete() メソッドを使用してファイルまたはディレクトリを削除するにはどうすればよいですか?概要: Java では、File クラスの delete() メソッドを使用してファイルまたはディレクトリを削除できます。このメソッドは、指定されたファイルまたはディレクトリを削除するために使用されます。ただし、この方法では、他のプログラムによって開かれていない空のディレクトリまたはファイルしか削除できないことに注意してください。ファイルまたはディレクトリの削除が失敗した場合は、IOException をキャッチすることで特定の理由を見つけることができます。ステップ 1: 関連パッケージをインポートする まず、

Java の File.mkdirs() 関数を使用して複数レベルのディレクトリを作成する Java では、ファイルを保存および整理するためにフォルダーを作成する必要がよくあります。場合によっては、サブフォルダーを含むフォルダーであるマルチレベルのディレクトリを作成する必要があります。 Java では、この関数を実装するために File クラスの mkdirs() 関数が提供されています。 Fileクラスはファイルやディレクトリを扱うJavaのクラスで、ファイルやディレクトリを操作するための一連のメソッドを提供します。このうち mkdirs() 関数は、複数階層のディレクトリを作成する関数です。下
