欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

php語(yǔ)言

php遞歸遍歷刪除文件的方法

時(shí)間:2025-04-02 15:12:57 php語(yǔ)言 我要投稿
  • 相關(guān)推薦

php遞歸遍歷刪除文件的方法

  文章主要介紹了php遞歸遍歷刪除文件的方法,涉及php遍歷文件操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下.

  本文實(shí)例講述了php遞歸遍歷刪除文件的方法。分享給大家供大家參考。具體如下:

  這個(gè)函數(shù)稍加修改就可以變成一個(gè)遞歸文件拷貝函數(shù)

  ?

  1

  2

  3

  4

  5

 

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23

  24

  25

  26

  <?php

  function mover($src,$dst) {

  $handle=opendir($src);

  // Opens source dir.

  if (!is_dir($dst)) mkdir($dst,0755);

  // Make dest dir.

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

  if (($file!=".") and ($file!="..")) {

  // Skips . and .. dirs

  $srcm=$src."/".$file;

  $dstm=$dst."/".$file;

  if (is_dir($srcm)) {

  // If another dir is found

  mover($srcm,$dstm);

  // calls itself - recursive WTG

  } else {

  copy($srcm,$dstm);

  unlink($srcm);

  // Is just a copy procedure is needed

  } // comment out this line

  }

  }

  closedir($handle);

  rmdir($src);

  }

  ?>

  希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。

  【拓展閱讀】

  算法原理

  如果用P表示n個(gè)元素的全排列,而Pi表示n個(gè)元素中不包含元素i的全排列,(i)Pi表示在排列Pi前面加上前綴i的排列,那么n個(gè)元素的全排列可遞歸定義為:

  ① 如果n=1,則排列P只有一個(gè)元素i;

 、 如果n>1,則全排列P由排列(i)Pi構(gòu)成;

  根據(jù)定義,可以看出如果已經(jīng)生成(k-1)個(gè)元素的排列Pi,那么k個(gè)元素的排列可以在每個(gè)Pi前面加上元素i而生成。

  代碼實(shí)現(xiàn)

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

  function rank($base, $temp=null)

  {

  $len = strlen($base);

  if($len <= 1)

  {

  echo $temp.$base.'<br/>';

  }

  else

  {

  for($i=0; $i< $len; ++$i)

  {

  rank(substr($base, 0, $i).substr($base, $i+1, $len-$i-1), $temp.$base[$i]);

  }

  }

  }

  rank('123');

  不過(guò),經(jīng)多次測(cè)試運(yùn)行結(jié)果,發(fā)現(xiàn)存在一個(gè)問題:若是存在相同的元素,則全排列有重復(fù)。

  例如'122'的全排列只有三種情況:'122'、'212'、'221';上面方法卻有重復(fù)。

  略修改,加個(gè)判斷重復(fù)的標(biāo)志,解決了問題(代碼如下):

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

  function fsRank($base, $temp=null)

  {

  static $ret = array();

  $len = strlen($base);

  if($len <= 1)

  {

  //echo $temp.$base.'<br/>';

  $ret[] = $temp.$base;

  }

  else

  {

  for($i=0; $i< $len; ++$i)

  {

  $had_flag = false;

  for($j=0; $j<$i; ++$j)

  {

  if($base[$i] == $base[$j])

  {

  $had_flag = true;

  break;

  }

  }

  if($had_flag)

  {

  continue;

  }

  fsRank(substr($base, 0, $i).substr($base, $i+1, $len-$i-1), $temp.$base[$i]);

  }

  }

  return $ret;

  }

  print '<pre>';

  print_r(fsRank('122'));

  print '</pre>';

【php遞歸遍歷刪除文件的方法】相關(guān)文章:

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

PHP遍歷目錄文件常用方法09-23

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

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

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

用PHP遍歷目錄下的全部文件06-13

php遍歷數(shù)組的方法分享07-13

php遍歷替換目錄下文件指定內(nèi)容08-22

php讀取文件內(nèi)容的方法09-14