国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php遞歸創建和刪除文件夾的代碼小結

php遞歸創建和刪除文件夾的代碼小結

2019-12-29 17:24PHP教程網 PHP教程

有時候需要遞歸創建和刪除文件夾,那么就可以參考下面的代碼

第一種方法: 

復制代碼代碼如下:


<?php 
/** 
* 目錄生成類 :UtilsMakeDir 
* @author yepeng 
* @since 2010.3.18 
*/ 
class UtilsMakeDir{ 
//基目錄 建立目錄時不會對這個目錄進行建立。這應該是個已經存在的目錄 
private static $makeBasePath = 'video'; 
private static $delBasePath = 'video'; 

/** 
* 遞歸建立目錄, 
* 建立成功返回這個全路徑, 
* 建立失敗返回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為存在的目錄)下面,你傳入的參數應該是video/2/3/4 
* 建立成功返回這個全路徑, 
* 建立失敗返回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; 

} /** 
* 遞歸刪除 
* 刪除目錄及文件 
* 如果傳一個‘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); 
}} 
?> 


循環+遞歸,在winxp下測試成功,只要php文件編碼為gb2312,文件名隨意,應該把文件名改為編碼為gb2312,就行 

復制代碼代碼如下:


<?php 
deltree('./復件 復件 復件 復件 復件 復件 復件 復件 aaa'); 
function deltree($pathdir) 

//echo $pathdir.'<br/>';//我調試時用的 
if(is_empty_dir($pathdir))//如果是空的 

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

else 
{//否則讀這個目錄,除了.和..外 
$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); //如果不是,調用自身 
}else 

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



$d->close(); 
//echo "必須先刪除目錄下的所有文件";//我調試時用的 
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下測試成功,只要php文件編碼為gb2312,文件名隨意,應該把文件名改為編碼為gb2312,就行,沒測 

復制代碼代碼如下:


<?php 
header("Content-Type:text/html; charset=gb2312"); 
if(deleteDir('./復件 復件 復件 復件 復件 復件 復件 復件 復件 復件 復件 aaa')) 
echo "刪除成功"; 
function deleteDir($dir) 

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

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)) //是真實目錄 

deleteDir($file); 
}else { 
unlink($file); 



closedir($dp); 
}else 

return false; 


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

?> 


第三種遞歸法 在winxp下測試成功,是列出目錄文件 很好用 

復制代碼代碼如下:


<?php 
function listDir($dir) 

static $break=0; if($break++==100) exit;//控制深入層數 
static $i=-0; 
if(is_dir($dir))//目錄 

if ($dh = opendir($dir))//打開 

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

if((is_dir($dir."/".$file)) && $file!="." && $file!="..")//目錄 

$j=$i;while($j--) echo "-------"; 
echo "<b><font color='red'>目錄名:</font></b>".$dir."/".$file."<br><hr>"; 
$i++; 
listDir($dir."/".$file); 
$i--; 

else 

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

$j=$i;while($j--) echo "-------"; 
$ext=trim(extend($file)); 
//if($ext=='jpg') 
echo $dir.'/'.$file."<br>"; 



closedir($dh); 



function extend($file_name) 

$retval=""; 
$pt=strrpos($file_name, "."); 
if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt); 
return ($retval); 

//開始運行 
listDir("."); 
?> 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 91国内外精品自在线播放 | 国产精彩视频 | 男人的天堂中文字幕 | 午夜影视 | 色播一区二区 | 久久久av | 国产精品毛片在线 | 毛片国产 | 日韩无 | 午夜精品一区二区三区在线播放 | 91精品啪aⅴ在线观看国产 | 亚洲 成人 一区 | 欧美日韩欧美日韩 | 亚洲精品日韩激情在线电影 | 国产精品久久久久久久久免费桃花 | 国产精品中文字幕在线 | 中文久久| 国产精品成人观看视频国产奇米 | heyzo 在线| 最近日韩中文字幕 | 超级av | 亚洲毛片| 日日摸夜夜添夜夜添高潮视频 | av一区二区在线观看 | 午夜国产精品成人 | 韩国精品一区二区三区 | 久久精品超碰 | 日韩和欧美一区二区 | 日本福利视频网 | 一区二区三区在线 | 国产日韩一区 | 国产精品一区二区免费 | 国产福利在线播放 | 91精品在线看 | 国产一级毛片aaa | 婷婷色综合 | 欧美日韩国产在线观看 | 国产一区中文字幕 | 成人激情在线播放 | cao视频| 久久a视频 |