Mysmilies.net die Smilies Datenbank

Script oder Datei finden :

 
-Startseite
-Newsarchiv
-Newsletter
-Mein Dreamcodes
-Scripte
-eBooks
-Online Speicher
-Datenbanken
-Webseiten
-Trickfilm
-Web Grafiken
-Bildbearbeiter
-Browser
-EMail Software
-Ftp Clienten
-Betriebssysteme
-Texteditoren
-Wampserver
-Office Pakete
-Antivirus
-System Cleaner
-Recovery Tools
-Php Schnipsel
-Ajax Schnipsel
-VB Schnipsel
-Tutorials
-Workshops
-Webkatalog
-Leserforum
-Erweiterte Suche
-Sitemap
-Impressum
-neuste Downloads

1. Selfphp (1851)
2. Xampp OS X (1737)
3. Xampp Linux (1726)
4. Xampp Windows (1750)

-neuste Tutorials

1. Samsung S20 rooten (2175)
2. Gratis USA Nummer (15923)
3. RAID (14740)
4. Text auf Grafik (15591)


Tutorials Zip Klasse

 

Zip Klasse

Klasse mit der sich zip-files erstellen lassen

Script:

<?php

class ZipBuilder {

var $datasec = array(); // array to store compressed data

var $ctrl_dir = array(); // central directory 

var $eof_ctrl_dir = "x50x4bx05x06x00x00x00x00"; //end of Central directory record

var $old_offset = 0;



function ZipBuilder()

{

}



function getDosDatetime($date = 0)

{

if (!$date)

$date = date("Y-m-d H:i:s", time());

$regexp = "([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})";

$date = ereg_replace($regexp, "\1-\2-\3-\4-\5-\6", $date);

$date_array = split("-", $date);



$date_array[0] = $date_array[0]-1980;



$date_day = $date_array[2];

$date_month = $date_array[1];

$date_year = $date_array[0];

$date_hour = $date_array[3];

$date_minute = $date_array[4];

$date_second = $date_array[5];



$my_time = $date_hour;

$my_time = ($my_time << 6) + $date_minute;

$my_time = ($my_time << 5) + number_format($date_second / 2, 0);

$time_right = $my_time >> 8;

$time_left = $my_time - ($time_right << 8);



$my_date = $date_year;

$my_date = ($my_date << 4) + $date_month;

$my_date = ($my_date << 5) + $date_day;

$date_right = $my_date >> 8;

$date_left = $my_date - ($date_right << 8);



$time_left = sprintf("%02x", $time_left);

$time_right = sprintf("%02x", $time_right);

$date_left = sprintf("%02x", $date_left);

$date_right = sprintf("%02x", $date_right);



return pack("H*H*H*H*", $time_left, $time_right, $date_left, $date_right);

}



function add_path($name, $date = 0)

// adds "directory" to archive - do this before putting any files in directory!

// $name - name of directory... like this: "path/"

// ...then you can add files using add_file with names like "path/file.txt"

{

$name = str_replace("\", "/", $name);



$fr = "x50x4bx03x04";

$fr .= "x0ax00"; // ver needed to extract

$fr .= "x00x00"; // gen purpose bit flag

$fr .= function_exists('gzcompress')?"x08x00":"x00x00"; // compression method

$fr .= "x00x00x00x00"; // last mod time and date

$fr .= pack("V", 0); // crc32

$fr .= pack("V", 0); //compressed filesize

$fr .= pack("V", 0); //uncompressed filesize

$fr .= pack("v", strlen($name)); //length of pathname

$fr .= pack("v", 0); //extra field length

$fr .= $name;



$fr .= pack("V", 0); //crc32

$fr .= pack("V", 0); //compressed filesize

$fr .= pack("V", 0); //uncompressed filesize

$this -> datasec[] = $fr;

$new_offset = strlen(implode("", $this->datasec));



$cdrec = "x50x4bx01x02";

$cdrec .= "x00x00"; // version made by

$cdrec .= "x0ax00"; // version needed to extract

$cdrec .= "x00x00"; // gen purpose bit flag

$cdrec .= function_exists('gzcompress')?"x08x00":"x00x00"; // compression method

$cdrec .= $this->getDosDatetime($date); // last mod time & date

$cdrec .= pack("V", 0); // crc32

$cdrec .= pack("V", 0); //compressed filesize

$cdrec .= pack("V", 0); //uncompressed filesize

$cdrec .= pack("v", strlen($name)); //length of filename

$cdrec .= pack("v", 0); //extra field length 

$cdrec .= pack("v", 0); //file comment length

$cdrec .= pack("v", 0); //disk number start

$cdrec .= pack("v", 0); //internal file attributes

$ext = "x00x00x10x00";

$ext = "xffxffxffxff";

$cdrec .= pack("V", 16); //external file attributes - 'directory' bit set



$cdrec .= pack("V", $this -> old_offset); //relative offset of local header

$this -> old_offset = $new_offset;



$cdrec .= $name;

$this -> ctrl_dir[] = $cdrec;

}


function add_file($file)

{
// $filedata='';

$fd = fopen ($file, "rb");

$filedata = fread($fd, filesize($file));

$this->add_data($filedata, $file);

}


function add_data($data, $name, $date = 0)

// adds "file" to archive

// $data - file contents

// $name - name of file in archive. Add path if your want

{

$name = str_replace("", "/", $name);

// $name = str_replace("", "", $name);

$fr = "x50x4bx03x04";

$fr .= "x14x00"; // ver needed to extract

$fr .= "x00x00"; // gen purpose bit flag

$fr .= function_exists('gzcompress')?"x08x00":"x00x00"; // compression method

$fr .= "x00x00x00x00"; // last mod time and date



$unc_len = strlen($data);

$crc = crc32($data);

if (function_exists('gzcompress')) {

$zdata = gzcompress($data);

$zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug

} else {

$zdata = $data;

}


$c_len = strlen($zdata);



$fr .= pack("V", $crc); // crc32

$fr .= pack("V", $c_len); //compressed filesize

$fr .= pack("V", $unc_len); //uncompressed filesize

$fr .= pack("v", strlen($name)); //length of filename

$fr .= pack("v", 0); //extra field length

$fr .= $name;

// end of "local file header" segment

// "file data" segment

$fr .= $zdata;

// "data descriptor" segment (optional but necessary if archive is not served as file)

$fr .= pack("V", $crc); //crc32

$fr .= pack("V", $c_len); //compressed filesize

$fr .= pack("V", $unc_len); //uncompressed filesize



// add this entry to array

$this -> datasec[] = $fr;



$new_offset = strlen(implode("", $this->datasec));

// now add to central directory record

$cdrec = "x50x4bx01x02";

$cdrec .= "x00x00"; // version made by

$cdrec .= "x14x00"; // version needed to extract

$cdrec .= "x00x00"; // gen purpose bit flag

$cdrec .= "x08x00"; // compression method

$cdrec .= $this->getDosDatetime($date);

// $cdrec .="x00x00x00x00"; // last mod time & date

$cdrec .= pack("V", $crc); // crc32

$cdrec .= pack("V", $c_len); //compressed filesize

$cdrec .= pack("V", $unc_len); //uncompressed filesize

$cdrec .= pack("v", strlen($name)); //length of filename

$cdrec .= pack("v", 0); //extra field length 

$cdrec .= pack("v", 0); //file comment length

$cdrec .= pack("v", 0); //disk number start

$cdrec .= pack("v", 0); //internal file attributes

$cdrec .= pack("V", 32); //external file attributes - 'archive' bit set



$cdrec .= pack("V", $this -> old_offset); //relative offset of local header

// echo "old offset is ".$this->old_offset.", new offset is $new_offset<br>";

$this -> old_offset = $new_offset;



$cdrec .= $name;

// optional extra field, file comment goes here

// save to central directory

$this -> ctrl_dir[] = $cdrec;

}


function file() // dump out file

{

$data = implode("", $this -> datasec);

$ctrldir = implode("", $this -> ctrl_dir);



return

$data . $ctrldir . $this -> eof_ctrl_dir .

pack("v", sizeof($this -> ctrl_dir)) . // total # of entries "on this disk"

pack("v", sizeof($this -> ctrl_dir)) . // total # of entries overall

pack("V", strlen($ctrldir)) . // size of central dir

pack("V", strlen($data)) . // offset to start of central dir

"x00x00"; // .zip file comment length

}


function download($zip_name)

{

header("Content-type: application/octet-stream");

header("Content-disposition: attachment; filename=" . $zip_name . ".zip");

echo $this -> file();

}


function save($name)

{

$fd = fopen ($name, "wb");

$out = fwrite ($fd, $this-> file());

fclose ($fd);

}
// for unpack !!! => dosn't work with gzuncompress because CRC Fix !!!

/**

* from end to start of file !

* 16 Bit - zip file comment length

* 32 Bit - offset to start of central dir

* 32 Bit - size of central dir

* 16 Bit - total entries over all

* 16 Bit - total entries this disk

* eof central dir : "x50x4bx05x06x00x00x00x00"

* central dir

* data

*/

}


?>

 
Seiten : 1
hinzugefügt am : 28.01.2005
Autor : NA
Listings ID : 650
Status zum lesen : Gast
gelesen : 6428 mal
[Druckansicht] [Lesercharts] [RSS] [zur Übersicht]
 
 

Die Möglichkeit diesen Artikel zu verlinken :

HTML-Code:

Code zum Einbinden in ein Forum:


Hinweis : Das lesen des Artikels Zip Klasse - listings ID: 650 auf Dreamcodes, sowie Link Verweise auf Internetseiten fremder Anbieter erfolgen auf eigene Gefahr. Dreamcodes haftet nicht für Schäden, die aus der Verwendung des Inhaltes der Artikel erfolgen könnten. Schadenersatzansprüche, aus welchem Rechtsgrund auch immer, sind ausgeschlossen !
-Live Statistik
Datum: 25.11.2024
Uhrzeit: 02:14 Uhr
Online: 6 User
User heute: 785
User allgem.: 35352601

Eingeloggt als Gast
-Download des Monats
-
-unsere Monats Umfrage
Welche Serie ist besser?

The Blacklist
House of the Dragon
Die Ringe der Macht
The Sandman
Manifest

-unsere Bestseller