Search code examples
phpunlink

How to use php keep only specific file and remove others in directory?


How to use php keep only specific file and remove others in directory?

example:
1/1.png, 1/2.jpeg, 1/5.png ...

the file number, and file type is random like x.png or x.jpeg, but I have a string 2.jpeg the file need to keep.

any suggestion how to do this??

Thanks for reply, now I coding like below but the unlink function seems not work delete anything.. do I need change some setting? I'm using Mamp

UPDATE

// explode string <img src="u_img_p/5/x.png">
$content_p_img_arr = explode('u_img_p/', $content_p_img);
$content_p_img_arr_1 = explode('"', $content_p_img_arr[1]);    // get 5/2.png">
$content_p_img_arr_2 = explode('/', $content_p_img_arr_1[0]);    // get 5/2.png
print $content_p_img_arr_2[1];    // get 2.png   < the file need to keep

$dir = "u_img_p/".$id;  
if ($opendir = opendir($dir)){
    print $dir;
    while(($file = readdir($opendir))!= FALSE )
        if($file!="." && $file!= ".." && $file!= $content_p_img_arr_2[1]){
            unlink($file);
            print "unlink";
            print $file;
        }
    }
} 

I change the code unlink path to folder, then it works!!

 unlink("u_img_p/".$id.'/'.$file);  

Solution

  •  $dir = "your_folder_path";  
     if ($opendir = opendir($dir)){
        //read directory
         while(($file = readdir($opendir))!= FALSE ){
          if($file!="." && $file!= ".." && $file!= "2.jpg"){
           unlink($file);
          }
         }
       }