|
Server : LiteSpeed System : Linux srv526460274 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : kerao9884 ( 1082) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /home/bigo555.net/public_html/wp-content/plugins/wp-file-manager/classes/ |
Upload File : |
<?php
class wp_file_manager_files_restore {
public function extract($source, $destination) {
if (extension_loaded('zip') === true) {
if (file_exists($source) === true) {
$zip = new ZipArchive();
$res = $zip->open($source);
if ($res === TRUE) {
$allfiles = [];
for($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
if (strpos($filename,'wp-file-manager') === false) {
$allfiles[] = $zip->getNameIndex($i);
}
}
$zip->extractTo($destination, $allfiles);
$zip->close();
$isLocal = explode(':\\',$destination);
$path = count($isLocal) > 1 ? str_replace(DIRECTORY_SEPARATOR,'/',$isLocal[1]) : str_replace(DIRECTORY_SEPARATOR,'/',$isLocal[0]);
if(is_dir($destination.'/'.$path)){
$is_copied = copy_dir( $destination.'/'.$path, $destination);
if($is_copied){
$folderarr = explode('/',$path);
if(is_dir($destination.'/'.$folderarr[0])){
$is_deleted = $this->fm_rmdir($destination.'/'.$folderarr[0]);
}
return true;
}
}
return true;
} else {
return false;
}
} else {
return false;
}
}
return false;
}
public function fm_rmdir($src) {
$dir = opendir($src);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
$full = $src . '/' . $file;
if ( is_dir($full) ) {
$this->fm_rmdir($full);
}
else {
unlink($full);
}
}
}
closedir($dir);
rmdir($src);
}
}