Script för att packa upp en ZIP-fil på ett webbhotell



  • Ett snabbare alternativ till ftp

    Många väljer att skicka upp filer via ftp till sitt webbhotell när det inte finns stöd för en filhanterare eller ssh. Detta fungera bra i många fall men inte när man har massor med små filer som gör att det tar lång tid. För att optimera detta så kan man skapa en zip-fil istället som packas upp med hjälp av zip-stöded i php.

    OBS: Notera att när scriptet har kört klart så tar den bort både scriptet och zip-filen som du laddat upp.

    1. Se till att mappen är tom som du lägger upp detta i
    2. Skapa filen unzipper.php från koden nedan
    3. Ladda upp en zipfil som heter unzipper.zip
    4. Besök scriptet via en webbläsare och låt den köra klart.

    Här ser ni källkoden för filen unzipper.php

    <?php
    $filename = 'unzipper.zip';
    if(file_exists($filename))
    {
        $zip = new ZipArchive();
        $x = $zip->open($filename);
        if($x === true)
        {
            $zip->extractTo('.');
            $zip->close();
            unlink($filename);
            unlink('unzipper.php');
            print('unzipper.zip was unpacked!');
        }
        else print('Something went wrong!');
    }
    else print('Cant find unzipper.zip');
    

    Om du känner dig osäker så använd inte denna metod. Du kan alltid anlita mig för hjälp med flytt av webbplatser. Jag har även lagt till ett script för att ta bort alla filer i den mappen som scriptet ligger i. Det är rätt lustigt men även något så enkelt som att ta bort filer tar extremt lång tid via ftp ifall det är massor av dem.

    OBS: Notera att när scriptet har kört klart så tar den bort allt som finns.

    Här är källkoden till removeall.php

    <?php 
    function rrmdir($dir)
    {
        if(is_dir($dir))
        {
            $objects = scandir($dir);
            foreach ($objects as $object)
            {
                if ($object != "." && $object != "..")
                {
                    if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
                }
            }
            reset($objects);
            rmdir($dir);
        }
    } 
    rrmdir('.');
    

    Det är alltid kul att optimera så man spar tid 😉


 

Jenkler IT AB org.nr: 559082-6938   073-731 76 64   [email protected]

Ser ut som din anslutning till Jenkler IT AB gick förlorad, vänta medan vi försöker att återansluta.