26- PHP متقدم – شرح دوال ومكتبة ZipArchive للتعامل مع ملفات – PHP Zip Functions

شرح دوال ومكتبة ZipArchive للتعامل مع ملفات – PHP Zip Functions

====================

توفر PHP دوال [شركة برمجة مصرية] ومكتبة ZipArchive للتعامل مع ملفات ZIP (ضغط وفك ضغط).

class ZipArchive
——————
كلاس رئيسي للتعامل مع ملفات zip.

ZipArchive::open()
———————
يفتح ملف zip موجود أو ينشئ واحدًا جديدًا.


<?php
$zip = new ZipArchive();
if ($zip->open("test.zip", ZipArchive::CREATE) === TRUE) {
  $zip->addFromString("hello.txt", "مرحبا بالعالم");
  $zip->close();
  echo "✅ تم إنشاء الملف";
} else {
  echo "❌ فشل في فتح الملف";
}
?>

ZipArchive::addFile()
———————–
يُضيف ملف موجود إلى الأرشيف.


<?php
$zip = new ZipArchive();
$zip->open("test.zip");
$zip->addFile("file.txt", "newfile.txt");
$zip->close();
?>

ZipArchive::addFromString()
—————————–
يُضيف محتوى [شركة برمجة مصرية] كنص مباشر داخل ملف zip.


<?php
$zip = new ZipArchive();
$zip->open("test.zip");
$zip->addFromString("note.txt", "محتوى مباشر");
$zip->close();
?>

ZipArchive::extractTo()
————————-
يفك الضغط إلى مجلد معين.


<?php
$zip = new ZipArchive();
if ($zip->open("test.zip")) {
  $zip->extractTo("output/");
  $zip->close();
}
?>

ZipArchive::close()
———————
يُغلق الملف المضغوط بعد الانتهاء من العمليات.


<?php
$zip->close();
?>

ZipArchive::deleteName()
————————–
يحذف ملفًا من الأرشيف بالاسم.


<?php
$zip = new ZipArchive();
$zip->open("test.zip");
$zip->deleteName("note.txt");
$zip->close();
?>

ZipArchive::getNameIndex()
—————————-
يحصل على اسم ملف في الأرشيف بناءً على رقم الفهرس.


<?php
$zip = new ZipArchive();
$zip->open("test.zip");
echo $zip->getNameIndex(0);
$zip->close();
?>

ZipArchive::numFiles
———————–
عدد الملفات داخل الأرشيف.


<?php
$zip = new ZipArchive();
$zip->open("test.zip");
echo $zip->numFiles;
$zip->close();
?>