程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php刪除文件程序代碼

php刪除文件程序代碼

編輯:關於PHP編程

在php中要刪除文件我們需要使用php提供的unlink()文件刪除函數,下面我來給大家詳細介紹利用unlink刪除文件的方法,有需要的朋友可參考本教程。

unlink(filename,context)

 代碼如下 復制代碼

if (unlink($file_delete)) {
echo "The file was deleted successfully.", "n";
} else {
echo "The specified file could not be deleted. Please try again.", "n";
}

判斷文件是否存在

 代碼如下 復制代碼

$myfile = "./test1.txt";
if (file_exists($myfile)) {
$result=unlink ($myfile);
echo $result;
}
?>

批量刪除文件

 代碼如下 復制代碼

function delFileUnderDir( $dirName="../Smarty/templates/templates_c" )
{
if ( $handle = opendir( "$dirName" ) ) {
   while ( false !== ( $item = readdir( $handle ) ) ) {
   if ( $item != "." && $item != ".." ) {
   if ( is_dir( "$dirName/$item" ) ) {
         delFileUnderDir( "$dirName/$item" );
   } else {
   if( unlink( "$dirName/$item" ) )echo "成功刪除文件: $dirName/$item<br />n";
   }
   }
   }
   closedir( $handle );
}
}delDirAndFile( 'www.bKjia.c0m');

刪除目錄下文件並指定那些不刪除

 代碼如下 復制代碼

<?php
header("content-Type: text/html; charset=utf-8");
//配置開始
$path=".";//在些設置所刪除的目錄.為當前目錄 如:刪除path目錄,引號裡請添path;
$guolv="del.php,install.php,path";//設置需要過濾的文件或文件夾用英文狀態下,號分隔
//配置結束
if($_GET['action']=="del"){
 $file= array_values_recursive(recurdir($path,$guolv));
 foreach($file as $k => $v){
  remove_directory($v);
 }
}else{
 echo "您的配置如下<br>
 要刪除的目錄為:
 ";
 if($path==".")echo "當前目錄";else echo $path;
 echo "<br>您要過濾的文件或文件夾有:".$guolv."<br>
 如果確認過濾請<a href='?action=del'>點擊此處開始刪除相應的目錄及目錄下的所有文件</a>,如果配置不正確請到文件中修改
 ";
}


//刪除目錄及文件
function remove_directory($dir) {
  foreach(glob($dir) as $fn) {
    echo " removing $fn<br>n";
  if (!is_writable($fn))@chmod($fn, 0777);
  if(is_dir($fn)){@rmdir($fn);}else{@unlink($fn);}
   }
}
//掃描目錄
function recurdir($pathname,$guolv='del.php')
{
 $result=array();$temp=array();
 //檢查目錄是否有效和可讀
 if(!is_dir($pathname) || !is_readable($pathname))
 return null;
 //得到目錄下的所有文件夾
 $allfiles=scandir($pathname);
 foreach($allfiles as $key => $filename)
 {
  //如果是“.”或者“..”的話則略過
  if(in_array($filename,array('.','..')))continue;
  if(count($guolv)>0){$lv=explode(",",$guolv);if(in_array($filename,$lv))continue;}
 
  //得到文件完整名字
  $fullname =$pathname . "/" .$filename;
  //如果該文件是目錄的話,遞歸調用recurdir
  $temp[]=$fullname;
  if(is_dir($fullname)){
   $nowpath=explode("/",$fullname);
   if(count($guolv)>0){$lv=explode(",",$guolv);if(in_array($nowpath[count($nowpath)-1],$lv))continue;}
   $result[$filename] = recurdir($fullname);}
 }
 //最後把臨時數組中的內容添加到結果數組,確保目錄在前,文件在後
 foreach($temp as $f){
  $result[]=$f;
 }
 return $result;
}
//獲取所有文件
function array_values_recursive($ary)
{
   $lst = array();
   foreach( array_keys($ary) as $k ){
  $v = $ary[$k];
  if (is_array($v)) {$lst = array_merge( $lst, array_values_recursive($v));}else{$lst[] = $v;}
   }
   return $lst;
}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved