php zip dir

disco

Fizikalc
21. jul 2007
1.102
0
36
a je mozno, da mi eden nalima php kodo, ki pozipa eno mapo in jo shrani v drugo mapo, z datumom in uro kot ime zipa?

nujno rabim, nimam pa dostopa do neta.

hvala
 

gufy

Pripravnik
11. apr 2009
620
18
18
Koda:
function recurse_zip($src,&$zip,$path_length) {
        $dir = opendir($src);
        while(false !== ( $file = readdir($dir)) ) {
            if (( $file != '.' ) && ( $file != '..' )) {
                if ( is_dir($src . '/' . $file) ) {
                    recurse_zip($src . '/' . $file,$zip,$path_length);
                }
                else {
                    $zip->addFile($src . '/' . $file,substr($src . '/' . $file,$path_length));
                }
            }
        }
        closedir($dir);
}
//Call this function with argument = absolute path of file or directory name.
function compress($src)
{
        if(substr($src,-1)==='/'){$src=substr($src,0,-1);}
        $arr_src=explode('/',$src);
        $filename=end($src);
        unset($arr_src[count($arr_src)-1]);
        $path_length=strlen(implode('/',$arr_src).'/');
        $f=explode('.',$filename);
        $filename=$f[0];
        $filename=(($filename=='')? 'backup.zip' : $filename.'.zip');}
        $zip = new ZipArchive;
        $res = $zip->open($filename, ZipArchive::CREATE);
        if($res !== TRUE){
                echo 'Error: Unable to create zip file';
                exit;}
        if(is_file($src)){$zip->addFile($src,substr($src,$path_length));}
        else{
                if(!is_dir($src)){
                     $zip->close();
                     @unlink($filename);
                     echo 'Error: File not found';
                     exit;}
        recurse_zip($src,$zip,$path_length);}
        $zip->close();
        header("Location: $filename");
        exit;
}

ali
Koda:
<?
// increase script timeout value
ini_set("max_execution_time", 300);
// create object
$zip = new ZipArchive();
// open archive
if ($zip->open("my-archive.zip", ZIPARCHIVE::CREATE) !== TRUE) {
die ("Could not open archive");
}
// initialize an iterator
// pass it the directory to be processed
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("app/"));
// iterate over the directory
// add each file found to the archive
foreach ($iterator as $key=>$value) {
$zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key");
}
// close and save archive
$zip->close();
echo "Archive created successfully.";
?>

vse pobrano z neta, nič stestirano
 

Utisevalec

Guru
12. nov 2007
16.156
4.136
113
V osnovi lahko uporabis sistemski zip program.

Koda:
<?php
//datum - cas
$datum_cas = date('ymdhis');
$datum_cas_mapa = '/pot_do_mape/'.datum_cas;

//naredi folder (opozorilo: na nix*naredi folder s pravicami 777)
mkdir($datum_cas_mapa);

//zipaj
exec('zip $datum_cas_mapa/danes.zip /pot_do_mape_ki_se_jo_zipa/');

?>
 

Bush

Fizikalc
19. okt 2008
1.735
0
36
Citat:
Uporabnik disco pravi:
nujno rabim, nimam pa dostopa do neta.
A do alterja prideš pa kako?
shocked-1.gif
 

Utisevalec

Guru
12. nov 2007
16.156
4.136
113
Večina ljudi "internet" dojema od spletnega iskalnika dalje. Glede na to da je v vseh firmah praksa da se zaposlene omejuje pri uporabi interneta je verjetno v tem primeru nekaj podobnega.

Glede na čas domnevam je avtor kak študnet ki dela kot varnostnik/nočni čuvaj v eni od poslovnih stavb s tako omejenim internetom!
grims-1.gif
 

disco

Fizikalc
21. jul 2007
1.102
0
36
Hvala, zadevo sem zrihtal z zgoraj omenjenim primerom. Je ze v cronu in spila

Prvo sporocilo je napisal kolega, ker sem bil na enem kraju kjer ni blo skor nic signala in sem mu sms napisal on mi je pa kodo potem smsjal nazaj. Zato sem rabil nekaj preprostega. Server je pa samo za lokalno uporabo in ni na netu.