Prendi array PHP dinamico, impacchettalo come file separati all'interno di un singolo file zip

-1

Ho questi dati dinamici in PHP, ma per ogni record dell'array, voglio consentire un'opzione scaricabile per salvare un archivio zip di tutti i record (ciascuno come un file separato).

Questi sono in realtà record di zona DNS che sono ospitati in un database. Non avrebbe molto senso se fossero in un singolo file di testo, quindi sto cercando in qualche modo di esportare i dati come file separati all'interno dello zip.

Potrei salvarli su disco, ma so che c'è un modo in PHP di usare le intestazioni per forzare un download di dati come un determinato tipo di file. Quello che non so è come comprimere quei dati al volo. Forse non posso, e dovrò salvare ciascuno in una cartella temporanea, quindi comprimere il contenuto di quella cartella, quindi eliminare il contenuto dopo averlo scaricato.

Pensavo che forse la comunità potesse avere un'idea di dove cominciare. Grazie!

    
posta Will Ashworth 31.07.2013 - 17:25
fonte

1 risposta

1

Ti consigliamo di utilizzare il modulo Zip disponibile in PHP (altro in particolare, la classe ZipArchive ). Dovrai utilizzare questa classe per generare il file Zip stesso.

Dopo aver generato il file zip, potresti utilizzare una combinazione di readfile() e l'invio di un'intestazione Content-Type di application/zip .

È dovrebbe essere un semplice caso di unlink() 'nel file dopo la chiamata alla funzione readfile() per poter rimuovere il file zip generato. Non sono sicuro che ciò interromperà il trasferimento al client.

    
risposta data 14.08.2013 - 12:06
fonte

Leggi altre domande sui tag