• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

zip-Dateien durchsuchen

Status
Für weitere Antworten geschlossen.

FleyerShaver

Neues Mitglied
Ich bin gerade dabei mich bei PHP mit zip-Dateien zu befassen. Folgenden Code habe ich zum entpacken von Dateien:
PHP:
 function unzip($zip_name, $to)     {         if(substr($to, -1) != '/')         {             $to .= '/';         }          if(false == is_dir($to))         {             mkdir($to, 0777);         }          $zip  = fopen($zip_name, 'rb');         $size = filesize($zip_name);         fseek($zip, $size - 22);          // End of central dir record         $data = unpack('Vsig/vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcommentsize',  fread($zip, 22));          rewind($zip);          for ($i = 0; $i < $data['entries']; $i++)         {             // Local file header             $header = unpack('Vsig/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/ vextra_len', fread($zip, 30));              $header['filename'] = fread($zip, $header['filename_len']);              if($header['mdate'] && $header['mtime'])             {                 $hour    =  ($header['mtime'] & 0xF800) >> 11;                 $minute  =  ($header['mtime'] & 0x07E0) >> 5;                 $seconde =  ($header['mtime'] & 0x001F) * 2;                 $year    = (($header['mdate'] & 0xFE00) >> 9) + 1980;                 $month   =  ($header['mdate'] & 0x01E0) >> 5;                 $day     =   $header['mdate'] & 0x001F;                  $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);             }              else {                 $header['mtime'] = time();             }              if((substr($header['filename'], -1) == '/') ||                 ($header['filename']             == '.') ||                 ($header['filename']             == '..'))             {                 if(false == is_dir($to . $header['filename']))                 {                     mkdir($to . $header['filename']);                 }                  continue;             }              $fp = fopen($to . $header['filename'], 'wb');              while($header['compressed_size'])             {                 if($header['compressed_size'] < 2048)                  {                     $read_size = $header['compressed_size'];                 }                 else {                     $read_size = 2048;                 }                  $binary_data = pack('a' . $read_size, fread($zip, $read_size));                 fwrite($fp, $binary_data, $read_size);                 $header['compressed_size'] -= $read_size;             }              fclose($fp);             touch($to . $header['filename'], $header['mtime']);         }          fclose($zip); }
Bevor ich eine Datei entpacke möchte ich aber folgendes überprüfen. In der zip-Datei ist nur ein Ordner. Dieser Ordner kann verschiedene Namen haben. Nun möchte ich prüfen, ob in diesem Ordner eine datei mit dem Namen help.php vorhanden ist. Wenn diese vorhanden ist, soll der Ordner entpackt werden, andernfalls soll ein Fehler ausgegeben werden. Wie fange ich am besten an, sowas zu programmieren? EDIT: Was macht dieses sch**ß vbulletin immer mit meinem php-Code. Hier ist der Code ordentlich zu finden: quakenet:#php - nopaste #314959> -- The poster was too lazy to write a description.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben