Add to Google

The Best Zip Function

free web hosting
Open Discussion > CONTRIBUTE > Computers > Programming Languages > PHP Programming

The Best Zip Function

dogtag
hi
my 6th code is very useful, you can zip your file by this:

CODE
<?
class dZip{
    var $filename;
    var $overwrite;
    
    var $zipSignature = "\x50\x4b\x03\x04"; // local file header signature
    var $dirSignature = "\x50\x4b\x01\x02"; // central dir header signature
    var $dirSignatureE= "\x50\x4b\x05\x06"; // end of central dir signature
    var $files_count  = 0;
    var $fh;
    
    Function dZip($filename, $overwrite=true){
        $this->filename  = $filename;
        $this->overwrite = $overwrite;
    }
    Function addDir($dirname, $fileComments=''){
        if(substr($dirname, -1) != '/')
            $dirname .= '/';
        $this->addFile(false, $dirname, $fileComments);
    }
    Function addFile($filename, $cfilename, $fileComments='', $data=false){
        if(!($fh = &$this->fh))
            $fh = fopen($this->filename, $this->overwrite?'wb':'a+b');
        
        // $filename can be a local file OR the data wich will be compressed
        if(substr($cfilename, -1)=='/'){
            $details['uncsize'] = 0;
            $data = '';
        }
        elseif(file_exists($filename)){
            $details['uncsize'] = filesize($filename);
            $data = file_get_contents($filename);
        }
        elseif($filename){
            echo "<b>Cannot add $filename. File not found</b><br>";
            return false;
        }
        else{
            $details['uncsize'] = strlen($filename);
            // DATA is given.. use it! :|
        }
        
        // if data to compress is too small, just store it
        if($details['uncsize'] < 256){
            $details['comsize'] = $details['uncsize'];
            $details['vneeded'] = 10;
            $details['cmethod'] = 0;
            $zdata = &$data;
        }
        else{ // otherwise, compress it
            $zdata = gzcompress($data);
            $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug (thanks to Eric Mueller)
            $details['comsize'] = strlen($zdata);
            $details['vneeded'] = 10;
            $details['cmethod'] = 8;
        }
        
        $details['bitflag'] = 0;
        $details['crc_32']  = crc32($data);
        
        // Convert date and time to DOS Format, and set then
        $lastmod_timeS  = str_pad(decbin(date('s')>=32?date('s')-32:date('s')), 5, '0', STR_PAD_LEFT);
        $lastmod_timeM  = str_pad(decbin(date('i')), 6, '0', STR_PAD_LEFT);
        $lastmod_timeH  = str_pad(decbin(date('H')), 5, '0', STR_PAD_LEFT);
        $lastmod_dateD  = str_pad(decbin(date('d')), 5, '0', STR_PAD_LEFT);
        $lastmod_dateM  = str_pad(decbin(date('m')), 4, '0', STR_PAD_LEFT);
        $lastmod_dateY  = str_pad(decbin(date('Y')-1980), 7, '0', STR_PAD_LEFT);
        
        # echo "ModTime: $lastmod_timeS-$lastmod_timeM-$lastmod_timeH (".date("s H H").")\n";
        # echo "ModDate: $lastmod_dateD-$lastmod_dateM-$lastmod_dateY (".date("d m Y").")\n";
        $details['modtime'] = bindec("$lastmod_timeH$lastmod_timeM$lastmod_timeS");
        $details['moddate'] = bindec("$lastmod_dateY$lastmod_dateM$lastmod_dateD");
        
        $details['offset'] = ftell($fh);
        fwrite($fh, $this->zipSignature);
        fwrite($fh, pack('s', $details['vneeded'])); // version_needed
        fwrite($fh, pack('s', $details['bitflag'])); // general_bit_flag
        fwrite($fh, pack('s', $details['cmethod'])); // compression_method
        fwrite($fh, pack('s', $details['modtime'])); // lastmod_time
        fwrite($fh, pack('s', $details['moddate'])); // lastmod_date
        fwrite($fh, pack('V', $details['crc_32']));  // crc-32
        fwrite($fh, pack('I', $details['comsize'])); // compressed_size
        fwrite($fh, pack('I', $details['uncsize'])); // uncompressed_size
        fwrite($fh, pack('s', strlen($cfilename)));   // file_name_length
        fwrite($fh, pack('s', 0));  // extra_field_length
        fwrite($fh, $cfilename);    // file_name
        // ignoring extra_field
        fwrite($fh, $zdata);
        
        // Append it to central dir
        $details['external_attributes']  = (substr($cfilename, -1)=='/'&&!$zdata)?16:32; // Directory or file name
        $details['comments']             = $fileComments;
        $this->appendCentralDir($cfilename, $details);
        $this->files_count++;
    }
    Function setExtra($filename, $property, $value){
        $this->centraldirs[$filename][$property] = $value;
    }
    Function save($zipComments=''){
        if(!($fh = &$this->fh))
            $fh = fopen($this->filename, $this->overwrite?'w':'a+');
        
        $cdrec = "";
        foreach($this->centraldirs as $filename=>$cd){
            $cdrec .= $this->dirSignature;
            $cdrec .= "\x0\x0";                  // version made by
            $cdrec .= pack('v', $cd['vneeded']); // version needed to extract
            $cdrec .= "\x0\x0";                  // general bit flag
            $cdrec .= pack('v', $cd['cmethod']); // compression method
            $cdrec .= pack('v', $cd['modtime']); // lastmod time
            $cdrec .= pack('v', $cd['moddate']); // lastmod date
            $cdrec .= pack('V', $cd['crc_32']);  // crc32
            $cdrec .= pack('V', $cd['comsize']); // compressed filesize
            $cdrec .= pack('V', $cd['uncsize']); // uncompressed filesize
            $cdrec .= pack('v', strlen($filename)); // file comment length
            $cdrec .= pack('v', 0);                // extra field length
            $cdrec .= pack('v', strlen($cd['comments'])); // file comment length
            $cdrec .= pack('v', 0); // disk number start
            $cdrec .= pack('v', 0); // internal file attributes
            $cdrec .= pack('V', $cd['external_attributes']); // internal file attributes
            $cdrec .= pack('V', $cd['offset']); // relative offset of local header
            $cdrec .= $filename;
            $cdrec .= $cd['comments'];
        }
        $before_cd = ftell($fh);
        fwrite($fh, $cdrec);
        
        // end of central dir
        fwrite($fh, $this->dirSignatureE);
        fwrite($fh, pack('v', 0)); // number of this disk
        fwrite($fh, pack('v', 0)); // number of the disk with the start of the central directory
        fwrite($fh, pack('v', $this->files_count)); // total # of entries "on this disk"
        fwrite($fh, pack('v', $this->files_count)); // total # of entries overall
        fwrite($fh, pack('V', strlen($cdrec)));     // size of central dir
        fwrite($fh, pack('V', $before_cd));         // offset to start of central dir
        fwrite($fh, pack('v', strlen($zipComments))); // .zip file comment length
        fwrite($fh, $zipComments);
        
        fclose($fh);
    }
    
    // Private
    Function appendCentralDir($filename,$properties){
        $this->centraldirs[$filename] = $properties;
    }
}

$newzip->addFile('dUnzip2.inc.php',  'class dUnzip2/dUnzip2.inc.php');
$newzip->addFile('documentation.txt','class dUnzip2/documentation.txt');
$newzip->addFile('dZip.inc.php',     'class dZip/dZip.inc.php');
$newzip->addFile('sample.php',       'sample.php');

# // Save the new file
$newzip->save();

?>

 

 

 


Reply

petdin11
Hello,

I work with my friends on open source project (http://sourceforge.net/projects/wversions) developed in PHP. It can be used for exchange, file management and version control through the web.
I have found your source code with class dZip on internet and I would like to request your permission to use in it our project, if it is possible.
Looking forward for your response


Best regards

petdin

Reply



Got an Opinion! Express your Views! (no registration):-
Add your Reply/ Opinion/ Views/ Comments/ Suggestion/ Questions/ Queries etc.
Posts with decent grammar & English will be accepted and please refrain from profanities.
For asking a Question, We recommend you to sign-up (for free) so that you can track the topic easily.

Nature of your Post*: Opinion/ Reply/ Comments
Question/Query
Feedback to us.
       
Name   Email
Title/Question*

(Maximum characters: 10,000)
You have characters left.

Recent Queries:-
  1. dunzip2.inc file php - 1394.16 hr back. (1)
  2. $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2) fatal error - 1516.15 hr back. (1)
  3. addfile( class dzip - 1864.07 hr back. (1)
  4. dzip.inc.php - 1922.74 hr back. (1)
  5. mosloadcomponent() and its attributes - 2067.46 hr back. (1)
Similar Topics

Keywords : zip, function

  1. Search Engine/ Function
    (0)
  2. PHP Function To Add Previous and Next Page Feature
    useful php function (5)
    CODE function navigationbar($start_number = 0, $items_per_page = 50, $count) {    // Creates a
    navigation bar    $current_page = $_SERVER ;     if (($start_number         $start_number = 0;
        }     $navbar = "";     $prev_navbar = "";     $next_navbar = "";     if ($count >
    $items_per_page) {         $nav_count = 0;         $page_count  = 1;         $nav_passed = false;
            while ($nav_count             // Are we at the current page position?             if
    (($start_number                 $navbar .= " ";                 $nav_passed = true;       ....
  3. Endif function?
    (6)
    As you get noticed before, I am studying PHP in examples like using the tutorials as well as books
    itself. Through my readings, I get this function CODE a lot of times. So, what do you mean
    by this function, and what does it do exactly?....
  4. Arrays Outside A Function
    Need to have arrays available to all functions. (3)
    I've got a bunch of arrays that i want to use for more then 1 function. when i declear the
    arrays outside a function i cant use it in a function. This code was originally written in
    javascript by another person but since I plan to use it and extend it with php I had to change it
    from javascript to php code. In the javascript code the arrays were decleared outside the functions
    with 'var arrayname' I read somewhere that declearing javascript variables with
    'var' gives it global access. Any ideas on how I can go about declearing 1 set of these
    arrays t....
  5. How To Check If Fsockopen Function Is Enabled?
    (2)
    Hi, I have VPS (virtual private server) and I have access to php.ini file. Is there any script that
    will show that fsockopen function is enabled or where do I have to enable it? Searched google and
    here and couldn't find anything. Thanks! ....
  6. Php Explode Function Help
    (4)
    I am having trouble creating a script, all i want to achieve is to: 1. Select the variable from my
    mysql database, which is in a format of : id|id|id|id| and so on... 2. Split them into separate
    variables by using : $songexploded = explode("|",$ttyo ); 3. Then this is the bit I'm stuck on
    trying to create a while loop from the $songexploded variables. So(this might not be correct but
    you should get the idea).. CODE $x=1; while ($songexploded ==$result) echo $songexploded
    .' '; } ....
  7. Mail() Clone
    A PHP mail() function clone (5)
    A lot of free web hosts have disabled the mail() function so you cannot send emails using PHP. Does
    anybody know of a script that makes a function "like" mail but is able to be installed in a web
    accessible directory and called included into another script and called like that? Or maybe you know
    how to make such a function? I just really need to find a way around the free hosts turning of the
    mail() function. I need to figure out a way to send emails.....
  8. [php](simple) Using Functions To Combine Values In A Form
    Really simple example on how to combine values with function (2)
    I just learned this simple method on how to use functions to combine two values from a form. First
    we create ourselves a simple POST form CODE Name: Location: Now we add this php
    to that same file CODE $nick = $_POST ; $location = $_POST ; function information($nick,
    $location){     echo 'My nick is '.ucfirst($nick).' My location is '.$location;
         } information($nick, $location); ?> that code is similar to this one CODE $nick =
    $_POST ; $location = $_POST ; function information($nick, $location){     return ....
  9. [php] Header Function
    (2)
    Header function Greetings we are going to use the header() funtion to redirect start making a
    file called page.php at the top of the file add CODE ?> Example 1 After CODE
    header('Location: http://www.trap17.com'); the LOCATION means where you want it to go.
    Example 2 you also can define a file that you want to redirect to After CODE
    header('Location: index.php'); Example 3 you also can add a timer to it /laugh.gif"
    style="vertical-align:middle" emoid=":lol:" border="0" alt="laugh.gif" /> After CODE header(&#....
  10. Error With Joomla Template
    cant find function (1)
    Hello! I am working on my template in Dreamweaver and i am using joomla extensions for dreamweaver!
    When i start my page with joomla stand alone server(jsas) i get this errors on the bottom of the
    page! QUOTE Warning: mosloadcomponent(w:/www/Joomla/components/com_banner/banner.php) : failed
    to open stream: No such file or directory in w:\www\Joomla\includes\frontend.php on line 66
    Warning: mosloadcomponent(w:/www/Joomla/components/com_banner/banner.php) : failed to open stream:
    No such file or directory in w:\www\Joomla\includes\frontend.php on line 66 Warning: m....
  11. The Extract() Function
    Something I just found out (6)
    The extract() function is used in PHP to take an array and split it up into variables. MySQL
    queries can be parsed this way. Below is an example. CODE $query = mysql_query("select
    username, password from users where uid=1"); $result = mysql_fetch_array($query, mysql_assoc);
    extract($result); print "Your username is : $username"; The extract() function works for ANY
    array, including $_POST, and $_GET. Makes processing form data a LOT easier /biggrin.gif"
    style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" /> .....
  12. How Good Is This Data Cleaning Function?
    (2)
    Hi all, this is my first function and as part of a script and i just want to know a couple of
    things. here is the code for the function: CODE function clean($dirty_string) {
    $muddy_string = stripslashes($dirty_string); $murky_string = strip_tags($muddy_string);
    $clean_string = htmlentities($murky_string);      }; ?> So the first thing is how secure is it?
    the script this will be used in connects to a database and sends an email so it needs to stop SQL
    injections and any email abuse it might cause, also the data stored in the database will be usaed as
    par....
  13. Explode Function Help
    need help from you programmers! (1)
    /smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> Hi I am robert I
    need some help with some php coding. I am stuck with a explode function. Here is the code:
    $username = $check ; $query="SELECT `buildings` FROM `authuser` WHERE `uname` =
    '$username'"; $result=mysql_query($query); $result=mysql_result($result,0);
    list($building1,$building2,$building3,$building4,$building5,$building6,$building7,$building8,$buildi
    ng9,$building10,)=explode('|',$result,'|',$position); I want to explode a mysql
    field into two seper....
  14. Regexp Function Preg_match_all()
    preg_match_all() - Help me (0)
    Hi, I got a new problem which has caused me to go mad but no solution. preg_match_all() - is the
    problem. I have something like this: CODE Test1 Test2 Test3 Test4 Test5 Some
    text.Some text.Some text. Test1 Test1 Test2 Test3 Test4 Test5 Test2 Test3
    Test4 Test5 My RegExp is the following: CODE preg_match_all("/(\ )(.*)(\ )/iUx",
    $text, $matches, PREG_SET_ORDER); Now this function gets 2 matches from the given text : Match
    1: CODE Test1 Test2 Test3 Test4 Test5 Match 2: CODE ....
  15. Question About The Mail() Function
    (2)
    Hi, Is there any way of using the mail() function with an SMTP connection? Is there any way of
    sending messages let's say for example using an email of yahoo? Any help about this woul be very
    thankfull. Thanks in advance.....
  16. How To Enable Mail() Function In Php
    (1)
    im just trying to send mail by using a very simple php function mail() but it is not working.the
    format is CODE $to = "email@example.com"; $subject = "Hi!"; $body = "Hi,\n\nHow are you?"; if
    (mail($to, $subject, $body)) {   echo(" Message successfully sent! "); } else {   echo(" Message
    delivery failed... "); } I think there is something wrong with php.ini setting..maybe
    something to do with SMTP settings.. i want to send email FROM either hotmail , gmail , or yahoo or
    any other web based email because i dont know my ISP smtp setting..so can anyone please ....
  17. Include File.php?id=something
    using the include() function (13)
    Well, I am making a full CMS system for my site, and want to make the index.php file to include the
    view.php?id=1 file. I tried with this code, but it didn't work: CODE This is the error
    I get: CODE Warning: main(view.php?id=1) : failed to open stream: Invalid argument in
    C:\server\xampp\htdocs\test\index.php on line 1 Warning: main() : Failed opening
    'view.php?id=1' for inclusion (include_path='.;C:\server\xampp\php\pear\') in
    C:\server\xampp\htdocs\test\index.php on line 1 So what can I do?....
  18. How To Use A Link To Call Function In Php?
    (8)
    The title says it all, really. How do you call a function using in PHP? I'm doing a project
    and I stumbled upon this problem. I don't want to use query string in the href part like
    since that would mess up the other part of my code. Can anyone pleae help me? I've pasted the
    code below. /smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /> Thanksh.
    CODE   function display($x){ //coding goes here.   } ?> Display itmes ....
  19. php header() function help needed
    automatic re-direct (4)
    hey ppl, u seem to have real gud knowledge about php, i just wanted a little help...i designed this
    website, but i want that if i click on certain page, it should open for some few seconds and then
    browser should automatically redirect me to some other page....i tried this with header() function
    but i couldnt do the wait n redirect part, ... so somebody plz help.... -thanx in advance!....
  20. Need Help With Php
    GET function with timer (2)
    I need some help on creating a timer that every thirty minutes, refreshes on a URL. I know how to
    get the page, but I have no idea how to create a timer that initiates it. Could someone point me on
    a helpful direction?....
  21. Question For The If And Echo Function
    (2)
    I'm not that good with PHP, and I tried this code: CODE if ( $_SERVER == ('/')
    )/*'/' is the domain root*/ { echo(' '); } else { echo(' '); }
    However, it doesn't work. So, basically, I want that if the request is at the root (actually
    mysubdomain.domain.com), it will show {I_ONEURL} in the image src. If the request is not at the
    root, but for instance at index.php?showpage=22, it will show {I_ANOTHERURL} in the image src. I
    hope you understand what I want, and can make a new code. And I know I'm not the best PHP pr....
  22. Need Help With The Header() Function
    I am redirecting from my old site (2)
    Over a month ago, I bought a domain name for my site, but my site is still not indexed. I did
    everything needed to get indexed, but I forgot one thing: The old site had exactly the same content
    as the new one. So I had duplicate content. Therefore, I want my old site to redirect the user to
    the new site with this script: CODE header("Location: http://www.global-rs.com" . $_SERVER );
    exit; ?> global-rs.com is my new URL. However, on my old site, which I will be placing this code
    on, there is a problem: It was a free host, not trap17 (I already had another site ....
  23. Sending Attachments Using Email Function In Php
    (2)
    I'm trying to send an attachment using the mail Php function. It gets caught by the email
    server with an error. It seems to have a problem with the separator or who knows what. The server
    says something like "invalid separator on mime type." The code is: Code: CODE  // subject
    $subject  = "Hello There "; $mime_boundary = " >>";        // headers        $headers  =
    "From: " . 'Tom' . " \r\n"; $headers .= "Return-Path: " . 'texample@aol.com' .
    "\r\n"; $headers .= "Reply-To: " . 'texample@aol.com' . "\r\n"; $headers .= "....
  24. Error When Using file_put_contents()
    failed to call to undefined function (4)
    Hey all, I decided to write a script which writes some text to a file, but I have a problem when I
    execute the script, I get a fatal error: QUOTE(homepage) Fatal error : Call to undefined
    function: file_put_contents() in /home/cmatcme/public_html/afile.php on line 55 This is the
    code I'm using to write the file: $ipfnsdoc = "/home/cmatcme/public_html/afolder/afile.txt";
    if (!is_readable($ipfnsdoc)) { echo "File cannot be read"; $stopload = 1; } if
    (!is_writable($ipfnsdoc)) { echo " \nFile cannot be written to"; $stoploa....
  25. Directory Function
    - I need some help (1)
    Hey, I'm really in a jam. Here's whats happening, I have to post over 350 streaming WMA
    files on a server. But it would be nice to not have to script it out in HTML. And I know that in PHP
    you can set a directory or folder and PHP will place all the files out there. Would somone show me a
    way to do that? and please note where I must insert filenames, folder, ect.... So, I have tons of
    files that I need to have on the page, but scrpiting it takes long. Heres the page I'm working
    on: http://www.cbf-wa.org/sermons.php thanx so much....
  26. Need Feedback On A Function
    (1)
    I'm working hard on a fully self-coded community (after tons of errors you get depressed i
    know...but i need to see what i can), so i need some feedback on a Function i made (wich is
    basically reguser.php), here it is: CODE Function regresult($uname, $pword, $cword, $rname,
    $country, $day, $month, $year, $gender, $email, $email2){ Global $db; $datab="Users";
    if(empty($uname or $pword or $rname or $country or $day or $month or $year or $gender or $email)){
    exit("Please fill in every field."); } if($pword=!$cword){ exit("Your passwords do not match."); }
    if($email....
  27. Executing Scripts Without Include() Function
    php function to execute a script w/o showing html markup (3)
    Hi guys. I have another newbish PHP question. /laugh.gif' border='0' style='vertical-align:middle'
    alt='laugh.gif' /> Today, I decided to make a new navigation bar for my site. It doesn't look
    good because I just started learning Flash today, so I was basically feeling my way around the
    application. Anyways, if you use Flash and you try to validate your site at http://w3.validator.org
    , you get a lot of errors for some weird reason. So I was thinking about separating the markup for
    embed Flash from the rest of the site's source code. The problem with that i....
  28. A Function To Count The Number Of Lines In A String?
    (4)
    I'm making a forum and I'm currently coding signatures. Is there a function that I can use
    to make sure that what the user inputs is a certain number of lines?....
  29. Question About The Date() Function In Php
    (4)
    Hi this is the code I've been using. This works perfectly fine with mysql but I'm having
    trouble with getting the exact time. It probably has something to do with time zones and countries.
    Is there something that I need to set to get the time right? I'm from the Philippines and we
    have the same time as Singapore and HongKong. Help please. Tnx. /huh.gif' border='0'
    style='vertical-align:middle' alt='huh.gif' /> CODE $date = date('H:i A, jS F Y');
    ....
  30. Getting List Of Directories And Files Using Php
    PHP Function for Directory and File List (6)
    is there a php function that lists the content of some folder.... example: /New folder new.txt
    left.gif download.zip dc.exe ....so is there..? /rolleyes.gif' border='0'
    style='vertical-align:middle' alt='rolleyes.gif' /> ....

    1. Looking for zip, function






*SIMILAR VIDEOS*
Searching Video's for zip, function

*MORE FROM TRAP17.COM*
Similar
Search Engine/ Function
PHP Function To Add Previous and Next Page Feature - useful php function
Endif function?
Arrays Outside A Function - Need to have arrays available to all functions.
How To Check If Fsockopen Function Is Enabled?
Php Explode Function Help
Mail() Clone - A PHP mail() function clone
[php](simple) Using Functions To Combine Values In A Form - Really simple example on how to combine values with function
[php] Header Function
Error With Joomla Template - cant find function
The Extract() Function - Something I just found out
How Good Is This Data Cleaning Function?
Explode Function Help - need help from you programmers!
Regexp Function Preg_match_all() - preg_match_all() - Help me
Question About The Mail() Function
How To Enable Mail() Function In Php
Include File.php?id=something - using the include() function
How To Use A Link To Call Function In Php?
php header() function help needed - automatic re-direct
Need Help With Php - GET function with timer
Question For The If And Echo Function
Need Help With The Header() Function - I am redirecting from my old site
Sending Attachments Using Email Function In Php
Error When Using file_put_contents() - failed to call to undefined function
Directory Function - - I need some help
Need Feedback On A Function
Executing Scripts Without Include() Function - php function to execute a script w/o showing html markup
A Function To Count The Number Of Lines In A String?
Question About The Date() Function In Php
Getting List Of Directories And Files Using Php - PHP Function for Directory and File List
advertisement



The Best Zip Function



 

 

 

 

ADD REPLY / Got an Opinion! a humble request :-) RAPID SEARCH! Free Hosting [X]
Express your Opinions, Thoughts or Contribute your information that might help someone here.
Ask your Doubts & Queries to get answers.. "Together, We enlight each other!"
Register FREE for AD-FREE forum, Create your own topics, Ask Questions, track topics, setup subscriptions & notifications and Get a Free Website w/ Email and FTP.
500MB Space *No Ads*, CPanel, FTP, PHP, MySQL, EMails - 100% FREE