witam, mam taki oto skrypt, chcę dodać do pliku .zip, plik .txt z datą utworzenia .zip, jaki kod dodać i gdzie ?

  1. <?
  2. // KONFIGURACJA
  3. set_time_limit( 300 ); // USTAWIA MAKSYMALNY CZAS DZIAŁANIA SKRYPTU. W PRZYPADKU DUŻEJ ILOŚCI DANYCH DO SPAKOWANIA NALEŻY ZWIĘKSZYĆ WARTOŚĆ
  4. $path = "img"; // ŚCIEŻKA DO PLIKU
  5. $filename = "photos.zip"; // NAZWA PLIKU WYNIKOWEGO
  6. // KONIEC KONFIGURACJI
  7.  
  8. // KLASA DO OBSŁUGI PLIKÓW ZIP - NIC NIE ZMIENIAĆ !!!
  9. class zipfile
  10. {
  11. var $datasec = array();
  12. var $ctrl_dir = array();
  13. var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
  14. var $old_offset = 0;
  15.  
  16. function add_dir($name) {
  17. $name = str_replace("\\", "/", $name);
  18.  
  19. $fr = "\x50\x4b\x03\x04";
  20. $fr .= "\x0a\x00";
  21. $fr .= "\x00\x00";
  22. $fr .= "\x00\x00";
  23. $fr .= "\x00\x00\x00\x00";
  24.  
  25. $fr .= pack("V",0);
  26. $fr .= pack("V",0);
  27. $fr .= pack("V",0);
  28. $fr .= pack("v", strlen($name) );
  29. $fr .= pack("v", 0 );
  30. $fr .= $name;
  31. $fr .= pack("V", 0);
  32. $fr .= pack("V", 0);
  33. $fr .= pack("V", 0);
  34.  
  35. $this -> datasec[] = $fr;
  36. $new_offset = strlen(implode("", $this->datasec));
  37.  
  38. $cdrec = "\x50\x4b\x01\x02";
  39. $cdrec .="\x00\x00";
  40. $cdrec .="\x0a\x00";
  41. $cdrec .="\x00\x00";
  42. $cdrec .="\x00\x00";
  43. $cdrec .="\x00\x00\x00\x00";
  44. $cdrec .= pack("V",0);
  45. $cdrec .= pack("V",0);
  46. $cdrec .= pack("V",0);
  47. $cdrec .= pack("v", strlen($name) );
  48. $cdrec .= pack("v", 0 );
  49. $cdrec .= pack("v", 0 );
  50. $cdrec .= pack("v", 0 );
  51. $cdrec .= pack("v", 0 );
  52. $ext = "\x00\x00\x10\x00";
  53. $ext = "\xff\xff\xff\xff";
  54. $cdrec .= pack("V", 16 );
  55. $cdrec .= pack("V", $this -> old_offset );
  56. $cdrec .= $name;
  57.  
  58. $this -> ctrl_dir[] = $cdrec;
  59. $this -> old_offset = $new_offset;
  60. return;
  61. }
  62.  
  63. function add_file($data, $name) {
  64. $fp = fopen($data,"r");
  65. $data = fread($fp,filesize($data));
  66. fclose($fp);
  67. $name = str_replace("\\", "/", $name);
  68. $unc_len = strlen($data);
  69. $crc = crc32($data);
  70. $zdata = gzcompress($data);
  71. $zdata = substr ($zdata, 2, -4);
  72. $c_len = strlen($zdata);
  73. $fr = "\x50\x4b\x03\x04";
  74. $fr .= "\x14\x00";
  75. $fr .= "\x00\x00";
  76. $fr .= "\x08\x00";
  77. $fr .= "\x00\x00\x00\x00";
  78. $fr .= pack("V",$crc);
  79. $fr .= pack("V",$c_len);
  80. $fr .= pack("V",$unc_len);
  81. $fr .= pack("v", strlen($name) );
  82. $fr .= pack("v", 0 );
  83. $fr .= $name;
  84. $fr .= $zdata;
  85. $fr .= pack("V",$crc);
  86. $fr .= pack("V",$c_len);
  87. $fr .= pack("V",$unc_len);
  88.  
  89. $this -> datasec[] = $fr;
  90. $new_offset = strlen(implode("", $this->datasec));
  91.  
  92. $cdrec = "\x50\x4b\x01\x02";
  93. $cdrec .="\x00\x00";
  94. $cdrec .="\x14\x00";
  95. $cdrec .="\x00\x00";
  96. $cdrec .="\x08\x00";
  97. $cdrec .="\x00\x00\x00\x00";
  98. $cdrec .= pack("V",$crc);
  99. $cdrec .= pack("V",$c_len);
  100. $cdrec .= pack("V",$unc_len);
  101. $cdrec .= pack("v", strlen($name) );
  102. $cdrec .= pack("v", 0 );
  103. $cdrec .= pack("v", 0 );
  104. $cdrec .= pack("v", 0 );
  105. $cdrec .= pack("v", 0 );
  106. $cdrec .= pack("V", 32 );
  107. $cdrec .= pack("V", $this -> old_offset );
  108.  
  109. $this -> old_offset = $new_offset;
  110.  
  111. $cdrec .= $name;
  112. $this -> ctrl_dir[] = $cdrec;
  113. }
  114.  
  115. function file() {
  116. $data = implode("", $this -> datasec);
  117. $ctrldir = implode("", $this -> ctrl_dir);
  118.  
  119. return
  120. $data .
  121. $ctrldir .
  122. $this -> eof_ctrl_dir .
  123. pack("v", sizeof($this -> ctrl_dir)) .
  124. pack("v", sizeof($this -> ctrl_dir)) .
  125. pack("V", strlen($ctrldir)) .
  126. pack("V", strlen($data)) .
  127. "\x00\x00";
  128. }
  129.  
  130. function zip_dir($path){
  131. if ($dir = opendir($path)) {
  132. while (false !== ($file = readdir($dir))) {
  133. if (is_dir($path."/".$file)) {
  134. if ($file != '.' && $file != '..') {
  135. $this->zip_dir($path."/".$file);
  136. $this->add_dir($path . "/" . $file,$path . "/" . $file);
  137. }
  138. }
  139. else {
  140. $this->add_file($path . "/" . $file,$path . "/" . $file);
  141. }
  142. }
  143. closedir($dir);
  144. }
  145. }
  146. }
  147. // KONIEC KLASY DO OBSŁUGI PLIKÓW ZIP
  148.  
  149. // KOD ARCHIWIZUJĄCY PLIK I WYSYŁAJĄCY GO DO PRZEGLĄDARKI
  150.  
  151. $backup = new zipfile();
  152.  
  153. $backup->zip_dir($path);
  154.  
  155. Header("Content-type: application/octet-stream");
  156. Header ("Content-disposition: attachment; filename=" . $filename);
  157. echo $backup->file();
  158.  
  159. // KONIEC
  160. ?>