Autor | Zpráva | ||
---|---|---|---|
Milda Jaroušek Profil * |
#1 · Zasláno: 4. 12. 2017, 11:54:39
Hezký den,
začínám s PHP a na testovacím serveru mám PHP 7.0 .... Uvítal bych jednoduchou aplikaci která přijme ZIP soubor a potřeboval bych ho projít nějakým cyklem a rozbalit pouze soubory ze zipu které mají "MIME-type" = image/jpeg a jsou zároveň menší než 1 MB. Ostatní větší a soubory jiných formátu ponechat nerozbalené. Jak mám postupovat? Na netu jsem pár podobných tipů našel, ale jde převážně o články staré 5 -10 let a pro starší verze PHP (4 a 5) , mne by zajímal optimální postup z dnešních doby pro PHP 7 a vyšší ... Díky moc za navedení. |
||
Keeehi Profil |
<?php $filename = 'archive.zip'; $za = new ZipArchive(); if($za->open($filename)) { $filesToExtract = []; for ($i = 0; $i < $za->numFiles ; $i++) { $entryStats = $za->statIndex($i); if(strtolower(substr($entryStats['name'], -4)) === '.jpg' && $entryStats['size'] < 1000000) { $filesToExtract[] = $entryStats['name']; } } if (!empty($filesToExtract)) { if($za->extractTo('extract', $filesToExtract)) { echo 'Extracted'; } else { echo 'Extraction failed'; } } else { echo 'No files for extraction'; } $za->close(); } else { echo "Archive $filename can't be opened"; } Mime-type zevnitř archivu nezvládneš zjistit. Na to by jsi musel ten soubor vyextrahovat. Můžeš ale kontrolovat jméno souboru a jeho koncovku. |
||
Milda Jaroušek Profil * |
#3 · Zasláno: 4. 12. 2017, 14:22:46
Keeehi:
Mockrát děkuji, to je přesně ono co jsem potřeboval! Jelikož ty soubory budu dále "projíždět" GD knihovnou, tak pouhá kontrola koncovek uvnitř extrakce bude stačit ;-). Ještě jednou díky. |
||
Časová prodleva: 5 let
|
0