Home >Backend Development >PHP Tutorial >Using the rmdir() function to implement PHP recursive deletion of directories_PHP tutorial
We all know that PHP is a small open source technology that has gradually developed as more and more people realize its practicality. Rasmus Lerdorf released the first version of PHP in 1994. It has grown rapidly since then and has now reached version 4.0.3 with numerous improvements and improvements over the original release.
On the other hand, let’s say you start by creating the product.php page. Instead of static information, it is coded to pull information from the product database and build a page dynamically. Then you have a metadata page that can serve one, a hundred, or even a hundred thousand individual pages based on the information stored in the database. Now webmasters no longer have to simply update static pages all day long, because the information on the page can be updated at the same time as the information in the company's database is updated. This eliminates the headache of time lag (the time between changing information in the database and displaying it on the website). Let's look at an example of recursively deleting a directory in PHP. I hope it will be helpful to everyone.
The rmdir() function can do it, but if you want to delete a non-empty directory, you will not be able to delete it quickly. You must first delete the files in the directory, but there may be subdirectories in the directory, so you need to use PHP Recursively delete a directory:
PHP recursively delete a directory code:
<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>