![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%)
|
Szukam klasy, funkcji, sposobu na przekopiowywanie po ftp całego skryptu czyli plików katalogów i podkatalogów z serwera lokalnego ja docelowe.
|
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%)
|
KLASA:
Kod <?php class Folders { public static function CreateFolder($path) { if(!is_array($path)) { if(file_exists($path)) return $path; $path = explode('/', $path); // Rozbijam nazwę katalogu } $name = ''; foreach($path as $key => $value) { if(empty($value)) array_splice($path, $key, 1); // Usunięcie wszystkich pustych przestrzeni else { $path[$key] = ucfirst($value); // Nazwy katalogów powinny zaczynać się z dużej litery $name .= $value; } } if(file_exists($name)) return $name.'/'; $cat_path = ''; foreach($path as $value) { $cat_path .= $value.'/'; if(!file_exists($cat_path)) { mkdir($cat_path); // Tworzenie katalogów } } return $cat_path; } /** * Metoda pobierająca liste katalogów z danego folderu. * * @param string $path - Ścieżka do katalogu z którego mają być odczytane katalogi. * @return array - Tablica numeryczna z nazwą katalogów || bollean @false jeśli w katalogu nie ma folderów lub ścieżka została błędnie podana. */ public static function GetFolders($path) { if(file_exists($path)) { $folder_list = array(); if(@$dir = opendir($path)) { while(($file_name = readdir($dir)) !== false) { if(is_dir($path.$file_name)) { if($file_name != '.' && $file_name != '..') $folder_list[] = $file_name; } } closedir($dir); } if(!empty($folder_list)) return $folder_list; else return false; } else return false; } /** * Metoda pobierająca liste plików z danego folderu. * * @param string $path - Ścieżka do katalogu z którego mają być odczytane pliki. * @return array - Tablica numeryczna z nazwami plików || bollean @false jeśli w katalogu nie ma plików lub ścieżka została błędnie podana. */ public static function GetFiles($path) { if(file_exists($path)) { $files_list = array(); if(@$dir = opendir($path)) { while(($file_name = readdir($dir)) !== false) { if(is_file($path.$file_name)) $files_list[] = $file_name; } closedir($dir); } if(!empty($files_list)) return $files_list; else return false; } else return false; } /** * Metoda kasująca określony folder. * * @param string $path - Ścieżka do folderu który ma zostać usunięty. */ public static function RemoveFolder($path) { self::RemoveFiles($path); // Kasowanie plików $folders_list = self::GetFolders($path); if(!empty($folders_list)) { foreach($folders_list as $value) { // Kasowanie folderów self::RemoveFolder($path.$value.'/'); } @rmdir($path); } else @rmdir($path); } /** * Metoda usuwa pliki z podanego folderu. * * @param string $path - Ścieżka do folderu z którgo mają zostać usunięte pliki. */ public static function RemoveFiles($path) { $file_list = self::GetFiles($path); if(!empty($file_list)) { foreach($file_list as $value) { @unlink($path.$value); // Kasowanie plików w katalogu } } } /** * Metoda kopiuje pliki i katalogi z określonego folderu. * * @param string $path - Ścieżka do katalogu w którym mają zostać skopiowane pliki i foldery. * @param string $destination - Ściezka katalogu do którego mają zostać skopiowane pliki i foldery (katalog nie musi istnieć). * * @return bollean @true || bollean @e false - Gdy podano błędną ścieżkę. */ public function CopyFolder($path, $destination) { if(file_exists($path)) { if(!file_exists($destination)) self::CreateFolder($destination); // Tworzenie katalogu docelowego jeśli nie istnieje $file_list = self::GetFiles($path); // Pobieram liste plików if(!empty($file_list)) { // Przenoszenie plików foreach($file_list as $value) { @copy($path.$value, $destination.$value); } } $folders_list = self::GetFolders($path); if(!empty($folders_list)) { foreach($folders_list as $value) { // Kopiowanie katalogów self::CopyFolder($path.$value.'/', $destination.$value.'/'); } } return true; } else return false; } } ?> Kod <?php Folders::CopyFolder('Public/Images/', 'Zdjecia/Nowe_zdjecia/'); ?> źródło: http://forum.php.pl/index.php?showtopic=101863 pozdro, trzeba szukać Ten post edytował toaspzoo 11.06.2011, 10:34:03 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%)
|
A gdzie tu jest ftp?
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%)
|
user:haslo@host/sciezka
jakoś tak to było |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%)
|
Niestety otrzymuję taki błąd Non-static method Folders::CopyFolder() should not be called statically in
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%)
|
któraś funkcja musi być static (statyczna) niezmienna
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%)
|
Niestety problem nadal pozostaje nierozwiązany.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 12.03.2026 - 11:56 |