فایل های آرشیو (archive) برای کم حجم کردن داده ها استفاده می شود. فرمت های ZIP, gzip و RAR بیشترین استفاده را برای فشرده کردن فایل ها دارند.
بطور معمول, ما از یک نرم افزار برای خارج کردن این فایل ها از حالت فشرده (extract) استفاده می کنیم. اما, این فایل های آرشیو می توانند توسط PHP نیز اکسترکت شوند.
به راحتی می توانید با نرم افزار Winrar و یا حتی داخل پنل هاست (مثلا cpanel) یک فایل zip ایجاد و آن را توسط یک اسکریپت PHP اکسترکت کنید.
همچنین در آموزش ساخت فایل ZIP با PHP (فشرده کردن) , نحوه ایجاد فایل zip روی سرور را با اسکریپت PHP قرار دادیم.
کلاس ZipArchive
یک راه آسان را برای UnZip فایل zip با PHP (اکسترکت) را ارایه می دهد.می توانید فایل zip را در سمت سرور با استفاده از ZipArchive در PHP اکسترکت کنید.
در این آموزش PHP , به شما نشان نحوه UnZip فایل zip با PHP را نشان می دهیم. نه فقط فایل های ZIP بلکه دیگر فرمت ها مانند Gzip , RAR را نیز می توانید با این اسکریپت PHP ما از حالت فشرده خارج کنید.
برای آسان تر کردن روند استخراج فایل آرشیو, ما تمام کد ها را در یک کلاس PHP گروه بندی کردیم و نام کلاس را Extractor
قرار دادیم.
این کلاس یک راه سریع و ساختاربندی شده برای پیاده سازی قابلیت استخراج در PHP را ارایه می دهد.
کلاس Extractor
کلاس Extractor به شما کمک می کنید که فایل های آرشیو (zip/gzip/rar) را در سرور با استفاده از ZipArchive در PHP اکسترکت کنید.
-
extract()
– این متد پسوند (extension) فایل را بررسی و تابع مناسب برای اکسترکت (extract) آن را صدا می زند.$archive
– مسیر نسبی فایل آرشیو که قرار است فایل های آن استخراج شود$destination
– مسیر قرار گیری فایل های اکسترکت شده.
extractZipArchive()
– این تابع کمکی از کلاس Extractor , فایل ZIP با پسوند (.zip) را با استفاده از ZipArchive در PHP اکسترکت (UnZip) می کند.extractGzipFile()
– این تابع کمکی از کلاس Extractor , فایل Gzip با پسوند (.gzip) را با استفاده از gzread() در PHP اکسترکت می کند.extractRarArchive()
– این تابع کمکی از کلاس Extractor , فایل RAR با پسوند (.rar) را با استفاده از RarArchive در PHP اکسترکت (UnRAR) می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php /** * Class Extractor * * Extract a archive (zip/gzip/rar) file. * * @author Hasan Shafei * @url https://www.netparadis.com * */ class Extractor { /** * Checks file extension and calls suitable extractor functions. * * @param $archive * @param $destination */ public static function extract($archive, $destination){} /** * Decompress/extract a zip archive using ZipArchive. * * @param $archive * @param $destination */ public static function extractZipArchive($archive, $destination){} /** * Decompress a .gz File. * * @param $archive * @param $destination */ public static function extractGzipFile($archive, $destination){} /** * Decompress/extract a Rar archive using RarArchive. * * @param $archive * @param $destination */ public static function extractRarArchive($archive, $destination){} } |
در کد بالا فقط متد ها را تعریف کردیم . برای دیدن تمام کدهای مربوط به متدهای کلاس Extractor لطفا از طریق باکس دانلود, سورس کامل را دریافت کنید.
UnZip فایل zip با PHP (اکسترکت)
از کلاس Extractor
برای اکسترکت فایل های آرشیو (ZIP, GZIP, RAR) با مشخص کردن آدرس فایل و مسیر فایل ها به صورت زیر استفاده کنید
- Include و ساخت نمونه کلاس Extractor
- مشخص کردن مسیر فایل آرشیوی که می خواهید از حالت فشرده خارج شود.
- مشخص کردن مسیر قرار گیری فایل های خارج شده از حالت فشرده بر روی سرور
- صدا زدن تابع
extract()
از کلاس Extractor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Include and initialize Extractor class require_once 'Extractor.class.php'; $extractor = new Extractor; // Path of archive file $archivePath = '/path/to/archive.zip'; // Destination path $destPath = '/destination/dir/'; // Extract archive file $extract = $extractor->extract($archivePath, $destPath); if($extract){ echo $GLOBALS['status']['success']; }else{ echo $GLOBALS['status']['error']; } |
امیدوارم از آموزش UnZip فایل zip با PHP نهایت استفاده را برده باشید.
برای دانلود سورس کد کامل از باکس دانلود زیر استفاده کنید.
هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق و پیروز باشید.
عالی سایت شما عشقه😍
سلام. خوشحالیم که مفید واقع شده