<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            php語言

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

            時間:2025-04-02 15:12:57 php語言 我要投稿
            • 相關推薦

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

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

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

              這個函數稍加修改就可以變成一個遞歸文件拷貝函數

              ?

              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);

              }

              ?>

              希望本文所述對大家的php程序設計有所幫助。

              【拓展閱讀】

              算法原理

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

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

              ② 如果n>1,則全排列P由排列(i)Pi構成;

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

              代碼實現

              復制代碼 代碼如下:

              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');

              不過,經多次測試運行結果,發現存在一個問題:若是存在相同的元素,則全排列有重復。

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

              略修改,加個判斷重復的標志,解決了問題(代碼如下):

              復制代碼 代碼如下:

              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遞歸遍歷刪除文件的方法】相關文章:

            php遞歸遍歷多維數組的方法10-06

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

            php遞歸創建和刪除文件夾的代碼09-21

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

            PHP使用遞歸算法無限遍歷數組示例05-20

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

            php遍歷數組的方法分享07-13

            php遍歷替換目錄下文件指定內容08-22

            php讀取文件內容的方法09-14

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院