亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

php語(yǔ)言

php遞歸創(chuàng)建和刪除文件夾的代碼

時(shí)間:2024-09-21 03:31:47 php語(yǔ)言 我要投稿
  • 相關(guān)推薦

php遞歸創(chuàng)建和刪除文件夾的代碼

  php中遞歸創(chuàng)建和刪除文件夾的代碼,供大家學(xué)習(xí)參考。就跟隨百分網(wǎng)小編一起去了解下吧,想了解更多相關(guān)信息請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

  方法一

  復(fù)制代碼 代碼如下:

  <?php

  /**

  * 目錄生成類 :UtilsMakeDir

  * @author yepeng

  * @since 2010.3.18

  */

  class UtilsMakeDir{

  //基目錄 建立目錄時(shí)不會(huì)對(duì)這個(gè)目錄進(jìn)行建立。這應(yīng)該是個(gè)已經(jīng)存在的目錄

  private static $makeBasePath = 'video';

  private static $delBasePath = 'video';

  /**

  * 遞歸建立目錄,

  * 建立成功返回這個(gè)全路徑,

  * 建立失敗返回false

  * @param String $pathString 路徑字符串如'2/3/4/5'

  * @return false or string

  public static function makeDir($pathString){

  $pathArray = explode('/',$pathString);

  if(empty($pathArray[0])){

  return false;

  }

  $path = array_shift($pathArray);

  self::$basePath = self::$basePath.'/'.$path;

  if(is_dir(self::$basePath)){

  $path = implode('/',$pathArray);

  self::makeDir($path);

  }

  else{

  @mkdir(self::$basePath,0777);

  $path = implode('/',$pathArray);

  self::makeDir($path);

  }

  if(is_dir(self::$basePath)){

  return self::$basePath;

  }

  else{

  return false;

  }

  } */

  /**

  * 建立目錄,包括基目錄,比如圖片要放在video(video為存在的目錄)下面,你傳入的參數(shù)應(yīng)該是video/2/3/4

  * 建立成功返回這個(gè)全路徑,

  * 建立失敗返回false

  * @param String $pathString 路徑字符串如'video/2/3/4/5'

  * @return false or string

  **/

  public static function makeDir($pathString){

  $pathArray = explode('/',$pathString);

  $tmpPath = array_shift($pathArray);

  foreach ($pathArray as $val){

  $tmpPath .= "/".$val;

  if(is_dir($tmpPath)){

  continue;

  }

  else {

  @mkdir($tmpPath,0777);

  }

  }

  if(is_dir($tmpPath)){

  return $tmpPath;

  }

  else{

  return false;

  }

  } /**

  * 遞歸刪除

  * 刪除目錄及文件

  * 如果傳一個(gè)‘video/2/3/4'這樣的路徑將刪除4下的所有目錄和文件

  * @param string $stringPath

  */

  public static function delDir($stringPath){

  if(!$handle = @opendir($stringPath)){

  return false;

  }

  while (false !==($file = readdir($handle))){

  if($file !='.' && $file != '..'){

  $tmpdir = $stringPath."/".$file;

  if(is_dir($tmpdir)){

  self::delDir($tmpdir);

  rmdir($tmpdir);

  }

  if(is_file($tmpdir)){

  unlink($tmpdir);

  }

  }

  }

  closedir($handle);

  }}

  ?>

  循環(huán)與遞歸,在winxp下測(cè)試成功,只要php文件編碼為gb2312,文件名隨意,應(yīng)該把文件名改為編碼為gb2312就可以了。

  復(fù)制代碼 代碼如下:

  <?php

  deltree('./復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 aaa');

  function deltree($pathdir)

  {

  //echo $pathdir.'<br/>';//我調(diào)試時(shí)用的

  if(is_empty_dir($pathdir))//如果是空的

  {

  rmdir($pathdir);//直接刪除

  }

  else

  {//否則讀這個(gè)目錄,除了.和..外

  $d=dir($pathdir);

  while($a=$d->read()) //下只刪除$pathdir下

  {

  if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))

  {

  unlink($pathdir.'/'.$a); //如果是文件就直接刪除

  }elseif(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..')) //如果是目錄

  {

  if(!is_empty_dir($pathdir.'/'.$a))//是否為空

  {

  deltree($pathdir.'/'.$a); //如果不是,調(diào)用自身

  }else

  {

  rmdir($pathdir.'/'.$a); //如果是空就直接刪除

  }

  }

  }

  $d->close();

  //echo "必須先刪除目錄下的所有文件";//我調(diào)試時(shí)用的

  rmdir($pathdir);

  }

  }

  function is_empty_dir($pathdir)

  {

  //判斷目錄是否為空,我的方法不是很好吧?除了.和..之外有其他東西不是為空

  $d=opendir($pathdir);

  $i=0;

  while($a=readdir($d))

  {

  $i++;

  }

  closedir($d);

  if($i>2){return false;}

  else return true;

  }

  ?>

  方法二

  在winxp下測(cè)試成功,只要php文件編碼為gb2312,文件名隨意,應(yīng)該把文件名改為編碼為gb2312,就行,沒測(cè)。

  復(fù)制代碼 代碼如下:

  <?php

  header("Content-Type:text/html; charset=gb2312");

  if(deleteDir('./復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 復(fù)件 aaa'))

  echo "刪除成功";

  function deleteDir($dir)

  {

  if (@rmdir($dir)==false && is_dir($dir)) //刪除不了,進(jìn)入刪除所有文件

  {

  if ($dp = opendir($dir))

  {

  while (($file=readdir($dp)) != false)

  {

  if($file!='.' && $file!='..')

  { //echo $file=$dir.'/'.$file;echo '<br/>';

  $file=$dir.'/'.$file;

  if (is_dir($file)) //是真實(shí)目錄

  {

  deleteDir($file);

  }else {

  unlink($file);

  }

  }

  }

  closedir($dp);

  }else

  {

  return false;

  }

  }

  if (is_dir($dir) && @rmdir($dir)==false) //是目錄刪除不了

  return false;

  return true;

  }

  ?>

【php遞歸創(chuàng)建和刪除文件夾的代碼】相關(guān)文章:

用php自定義函數(shù)之遞歸刪除文件及目錄09-13

php遞歸遍歷多維數(shù)組的方法10-06

php語(yǔ)言字典代碼06-08

php動(dòng)態(tài)生成JavaScript代碼10-03

php下載代碼怎么寫07-13

PHP源代碼方式詳解08-08

php上傳與刪除圖片的簡(jiǎn)單范例10-13

20條PHP代碼優(yōu)化技巧05-06

PHP使用遞歸算法無(wú)限遍歷數(shù)組示例05-20

php連接mysql數(shù)據(jù)庫(kù)代碼08-01