En mycket enkel lösning i många situationer, för ett ganska allvarligt problem. I scenariot där vi måste flytta en webbplats, vars filer är några tusen, och webbhotell tillhandahåller inte oss en backup-system med arkivering eller annan liknande metod för att tillåta oss detta, FTP-överföring Det är en lösning som vi skulle ta mycket lång tid.
Ett PHP-skript som laddas upp till servern som värd webbplatsen skulle hjälpa oss att göra det format tjära arkivering av alla filer i en mapp.
Hur arkiverar jag filer och mappar på en webbserver med hjälp av PHP-skript?
Kopiera skriptet nedan och lägg det i en .php-fil på servern. Exempel: arhiva.php för att innehålla skriptet nedan:
[Php]Prova {
// se till att skriptet har tillräckligt med tid att köra (300 sekunder = 5 minuter)
ini_set ('max_execution_time', '300');
ini_set ('set_time_limit', '0');
$target = isset ($ _ GET ["targetnamn "])? $ _GET ["targetnamn "]: 'archive.tar'; //default till archive.tar
$ dir = isset ($ _ FÅ ["dir"])? $ _GET ["dir"]: './.'; //defaults till alla i nuvarande dir
// setup phar
$ phar = new PharData ($target);
$ Phar-> buildFromDirectory (dirname (__FILE__). '/'.$dir);
eko 'Komprimera allt files gjort, kolla din server för file '. $target;
} fångst (Undantag $ e) {
// hantera fel
eko 'Ett fel har inträffat, detaljer:';
echo $ e-> getMessage ();
}
?> [/ Php]
Varning! Skriptet måste laddas upp i mappen där vi vill arkivera mappen och filerna den innehåller. Om vi till exempel vill arkivera allt innehåll i mappen WP-innehåll, WordPress, laddas filen som heter arhiva.php till / wp-content /.
Arkivet skapas genom att öppna filen arhiva.php i webbläsaren. url: http: ..web.name.tld / wp-content / archive.php, och i slutet av operationen på servern kommer filen archive.tar att finnas.
Om du har en stor filvolym, ändra "timeout" -värdet för körningstiden. Du kan göra detta från php.ini eller .htaccess.