- 相關(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使用遞歸算法無(wú)限遍歷數(shù)組示例05-20
用PHP遍歷目錄下的全部文件06-13
php遍歷數(shù)組的方法分享07-13
php讀取文件內(nèi)容的方法09-14