Saya telah menemukan di sini di stackoveflow beberapa kode tentang cara ZIP file tertentu, tetapi bagaimana dengan folder tertentu?
Folder/
index.html
picture.jpg
important.txt
di dalam My Folder
, ada file. setelah zip My Folder
, saya juga ingin menghapus seluruh isi folder kecuali important.txt
.
Menemukan ini di sini di tumpukan
Saya membutuhkan bantuan Anda. Terima kasih.
Jawaban:
Kode diperbarui 2015/04/22.
Zip seluruh folder:
Zip seluruh folder + hapus semua file kecuali "important.txt":
sumber
$zip->close()
tidak akan berhasil. Periksa jawaban saya di siniAda metode tak berdokumen yang berguna di kelas ZipArchive: addGlob ();
Sekarang didokumentasikan di: www.php.net/manual/en/ziparchive.addglob.php
sumber
addGlob
rekursif?Coba ini:
Ini tidak akan zip secara rekursif.
sumber
My folder
, tetapi saya juga memiliki folder di dalam folderMy folder
yang memberi saya kesalahan: Izin ditolak dengan membatalkan tautan folder dengan diMy folder
if (!is_dir($file) && $file != 'target_folder...')
sebagai gantinya. Atau periksa jawaban @kread jika Anda ingin melakukan zip secara rekursif, ini adalah cara yang paling efisien.My folder
masih belum dihapus, tetapi tidak ada lagi kesalahan.$zip->close()
tidak akan berhasil. Periksa jawaban saya di siniSaya menganggap ini berjalan di server di mana aplikasi zip berada di jalur pencarian. Seharusnya berlaku untuk semua berbasis unix dan saya kira sebagian besar server berbasis windows.
Arsip akan berada di archive.zip sesudahnya. Ingatlah bahwa kekosongan dalam nama file atau folder adalah penyebab umum kesalahan dan harus dihindari jika memungkinkan.
sumber
Saya mencoba dengan kode di bawah ini dan berfungsi. Kode ini cukup jelas, beri tahu saya jika Anda memiliki pertanyaan.
sumber
ini_set('memory_limit', '512M');
sebelum pelaksanaan skrip danini_restore('memory_limit');
di akhir. Itu perlu untuk menghindari kekurangan memori dalam kasus folder berat (itu folder lebih besar dari 500MB).Ini adalah fungsi yang zip seluruh folder dan isinya ke file zip dan Anda dapat menggunakannya sederhana seperti ini:
fungsi:
sumber
Mengapa tidak Coba EFS PhP-ZiP MultiVolume Script ... Saya zip dan mentransfer ratusan pertunjukan dan jutaan file ... ssh diperlukan untuk membuat arsip secara efektif.
Tetapi saya yakin bahwa file yang dihasilkan dapat digunakan dengan exec langsung dari php:
Saya tidak tahu apakah itu berhasil. Saya belum mencoba ...
"Rahasianya" adalah bahwa waktu eksekusi untuk pengarsipan tidak boleh melebihi waktu yang diizinkan untuk eksekusi kode PHP.
sumber
Ini adalah contoh kerja pembuatan ZIP di PHP:
sumber
Saya menemukan posting ini di google sebagai hasil teratas kedua, pertama menggunakan exec :(
Ngomong-ngomong, sementara ini tidak sesuai dengan kebutuhan saya .. Saya memutuskan untuk mengirim jawaban untuk orang lain dengan versi saya yang cepat namun diperluas.
FITUR SCRIPT
Ngomong-ngomong, ke skrip .. Meskipun mungkin terlihat seperti banyak .. Ingat ada kelebihan di sini .. Jadi jangan ragu untuk menghapus bagian pelaporan sesuai kebutuhan ...
Juga mungkin terlihat berantakan juga dan hal-hal tertentu dapat dibersihkan dengan mudah ... Jadi jangan berkomentar tentang itu, itu hanya skrip cepat dengan komentar dasar yang dilemparkan .. BUKAN UNTUK PENGGUNAAN LANGSUNG .. Tapi mudah dibersihkan untuk penggunaan langsung !
Dalam contoh ini, dijalankan dari direktori yang ada di dalam folder root www / public_html .. Jadi hanya perlu melakukan perjalanan satu folder untuk sampai ke root.
APA YANG DILAKUKANNYA ??
Ini hanya akan zip isi lengkap variabel $ pathBase dan menyimpan zip di folder yang sama. Ini melakukan deteksi sederhana untuk backup sebelumnya dan melompati mereka.
CADANGAN CRON
Script ini saya baru saja diuji di linux dan bekerja dengan baik dari cron job dengan menggunakan url absolut untuk pathBase.
sumber
Gunakan fungsi ini:
Contoh penggunaan:
sumber
Gunakan ini berfungsi dengan baik.
sumber
Buat folder zip di PHP.
Metode membuat zip
Panggil metode zip
sumber
Saya melakukan sedikit perbaikan dalam naskah.
sumber
Ini akan menyelesaikan masalah Anda. Silakan dicoba.
sumber
Bagi siapa pun yang membaca posting ini dan mencari alasan untuk melakukan zip file menggunakan addFile alih-alih addFromString, yang tidak zip file dengan path absolut mereka (hanya zip file dan tidak ada yang lain), lihat pertanyaan saya dan jawab di sini
sumber