If I’m correct about the first line of code here you sholud get an array lookin like the second line. Test that first and make a backup of your files.
This should list all userid’s or directories and loop through them.
If the copy is success (true) it unlinks the old file, else returns a error message.
This is untested code
//$arr = array_filter(glob('images/logos/*'), 'is_dir');
$arr = array("images/logos/1216","images/logos/11437","images/logos/234438");
//var_dump($arr);
foreach($arr as $dir){
$UID = str_replace("images/logos/", "", $dir);
$newpath = "images/users/" . floor($UID/1000) . "https://stackoverflow.com/" . $UID . "/logos/logo.jpg";
$oldpath = $dir . "/logo.jpg";
if(copy($oldpath, $newpath)){
unlink($oldpath);
}else{
echo "error with file " . $oldpath . "<br>\n";
$error = true;
}
}
if(!$error) unlink("images/logos");
EDIT; Just noticed I had used Excel too much lately. Changed the & to .
EDIT2; tested the code on my own page now and it seems the glob returns the path. Included code to get the UserID.
7
solved loop and rename all subfolders in php