ホームページ > バックエンド開発 > PHPチュートリアル > rmdir() 関数を使用して PHP ディレクトリの再帰的削除を実装する_PHP チュートリアル

rmdir() 関数を使用して PHP ディレクトリの再帰的削除を実装する_PHP チュートリアル

WBOY
リリース: 2016-07-15 13:28:21
オリジナル
1297 人が閲覧しました

PHP が小規模なオープンソース テクノロジーであり、より多くの人がその実用性を認識するにつれて徐々に開発されていることは誰もが知っています。 Rasmus Lerdorf は 1994 年に PHP の最初のバージョンをリリースしました。それ以来急速に成長し、現在はオリジナルのリリースに数多くの改良が加えられ、バージョン 4.0.3 に達しています。

PHP は、HTML に埋め込まれ、サーバーによって解釈されるスクリプト言語です。動的コンテンツの管理、データベースのサポート、セッション追跡の処理、さらには電子商取引サイト全体の構築にも使用できます。 MySQL、PostgreSQL、Oracle、Sybase、Informix、Microsoft SQL Server など、多くの一般的なデータベースをサポートしています。動的コンテンツがこれほど人気が​​あるのはなぜですか? 10 個の商品を扱う電子商取引サイトを管理しているとします。製品が頻繁に変更されない、またはあまり変更が予想されない限り、必要な情報、フォームなどを含む 10 個の静的な製品ページを手作業でコーディングすることは難しくありません。しかし、今月は 10 個以上の商品を追加し、来月はさらに商品を追加したいと考えており、場合によっては価格が変更されたり、サイトの外観や雰囲気を変更したいと考えているとします。そうなると、数十、おそらくは数百もの静的ページを手動で書き直すことになります。

一方、product.php ページを作成することから始めるとします。静的な情報の代わりに、製品データベースから情報を取得し、動的にページを構築するようにコード化されています。これにより、データベースに保存されている情報に基づいて、1、100、さらには 100,000 の個別のページを提供できるメタデータ ページが作成されます。会社のデータベース内の情報が更新されるのと同時にページ上の情報も更新できるため、ウェブマスターは静的ページを一日中更新する必要がなくなりました。これにより、タイムラグ(データベース内の情報が変更されてからWebサイトに表示されるまでの時間)という悩みが解消されます。 PHP でディレクトリを再帰的に削除する例を見てみましょう。これが皆さんの役に立つことを願っています。

rmdir() 関数で実行できますが、空ではないディレクトリを削除する場合は、すぐに削除することはできません。まずディレクトリ内のファイルを削除する必要がありますが、ディレクトリ内にサブディレクトリが存在する可能性があります。したがって、PHP を使用してディレクトリを再帰的に削除する必要があります:

PHP 再帰的にディレクトリを削除するコード:

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><</SPAN><SPAN>?php  </SPAN></SPAN><LI class=""><SPAN>functiondeletedir($dir){  </SPAN><LI class=alt><SPAN>if(!</SPAN><SPAN class=attribute>handle</SPAN><SPAN>=@opendir($dir)){//检测要打开目录是否存在  </SPAN></SPAN><LI class=""><SPAN>die("没有该目录");  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>while(false!==($</SPAN><SPAN class=attribute>file</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>readdir</SPAN><SPAN>($handle))){  </SPAN></SPAN><LI class=alt><SPAN>if($file!=="."&&$file!==".."){//排除当前目录与父级目录  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>file</SPAN><SPAN>=$dir.DIRECTORY_SEPARATOR.$file;  </SPAN></SPAN><LI class=alt><SPAN>if(is_dir($file)){  </SPAN><LI class=""><SPAN>deletedir($file);  </SPAN><LI class=alt><SPAN>}else{  </SPAN><LI class=""><SPAN>if(@unlink($file)){  </SPAN><LI class=alt><SPAN>echo"文件</SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>b</SPAN><SPAN class=tag>></span><span>$file</span><span class="tag"></</SPAN><SPAN class=tag-name>b</SPAN><SPAN class=tag>></span><span>删除成功。</span><span class="tag"><</SPAN><SPAN class=tag-name>br</SPAN><SPAN class=tag>></span><span>";  </span></span></li>
<li class=""><span>}else{  </span></li>
<li class="alt">
<span>echo"文件</span><span class="tag"><</SPAN><SPAN class=tag-name>b</SPAN><SPAN class=tag>></span><span>$file</span><span class="tag"></</SPAN><SPAN class=tag-name>b</SPAN><SPAN class=tag>></span><span>删除失败!</span><span class="tag"><</SPAN><SPAN class=tag-name>br</SPAN><SPAN class=tag>></span><span>";  </span>
</li>
<li class=""><span>}  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span>if(@rmdir($dir)){  </span></li>
<li class="">
<span>echo"目录</span><span class="tag"><</SPAN><SPAN class=tag-name>b</SPAN><SPAN class=tag>></span><span>$dir</span><span class="tag"></</SPAN><SPAN class=tag-name>b</SPAN><SPAN class=tag>></span><span>删除成功了。</span><span class="tag"><</SPAN><SPAN class=tag-name>br</SPAN><SPAN class=tag>></span><span>n";  </span>
</li>
<li class="alt"><span>}else{  </span></li>
<li class="">
<span>echo"目录</span><span class="tag"><</SPAN><SPAN class=tag-name>b</SPAN><SPAN class=tag>></span><span>$dir</span><span class="tag"></</SPAN><SPAN class=tag-name>b</SPAN><SPAN class=tag>></span><span>删除失败!</span><span class="tag"><</SPAN><SPAN class=tag-name>br</SPAN><SPAN class=tag>></span><span>n";  </span>
</li>
<li class="alt"><span>}  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>//测试程序  </span></li>
<li class="alt">
<span>$</span><span class="attribute">dir</span><span>=</span><span class="attribute-value">"/var/www/test"</span><span>;  </span>
</li>
<li class=""><span>deletedir($dir);  </span></li>
<li class="alt">
<span>?</span><span class="tag">></span><span> </span>
</li>
<li class=""><span> </span></li>
<li class="alt"><span>在/var/www/test文件夹下建一写文件夹和文件测试  </span></li>
<li class="">
<span>shell</span><span class="tag">></span><span>touchaaa  </span>
</li>
<li class="alt">
<span>shell</span><span class="tag">></span><span>touchbbb  </span>
</li>
<li class="">
<span>shell</span><span class="tag">></span><span>touchccc  </span>
</li>
<li class="alt">
<span>shell</span><span class="tag">></span><span>toucheee  </span>
</li>
<li class="">
<span>shell</span><span class="tag">></span><span>touchffff  </span>
</li>
<li class="alt">
<span>shell</span><span class="tag">></span><span>mkdir111  </span>
</li>
<li class="">
<span>shell</span><span class="tag">></span><span>mkdir222  </span>
</li>
<li class="alt">
<span>shell</span><span class="tag">></span><span>mkdir333  </span>
</li>
<li class=""><span>分别再在111,222,333文件夹下建写文件这里就不多说了,然后给他们权限  </span></li>
<li class="alt">
<span>shell</span><span class="tag">></span><span>chown[url]www.www[/url]test-R </span>
</li>
</ol>
ログイン後にコピー

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446454.html技術記事 PHP が小規模なオープンソース テクノロジであり、より多くの人がその実用性を認識するにつれて徐々に開発されていることは誰もが知っています。ラスムス・レルドルフは1994年にP...
をリリースしました
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート