Apabila jumlah data bertambah, pemampatan dan penyahmampatan fail telah menjadi ciri penting untuk banyak aplikasi. Sebagai bahasa pembangunan web yang popular, PHP secara semula jadi menyediakan beberapa fungsi terbina dalam untuk digunakan oleh pembangun. Dalam artikel ini, kita akan mengetahui lebih lanjut tentang fungsi fail pemampatan dan penyahmampatan dalam PHP.
(1) pemampatan gzip
gzip ialah alat untuk memampatkan fail ke dalam fail .gz. Dalam PHP, anda boleh menggunakan fungsi gzopen() untuk membuka fail gz dan menggunakan fungsi gzwrite() untuk menulis data pada fail tersebut.
Kod contoh:
<?php $filename = "example.txt"; $gzfilename = "example.txt.gz"; // 打开gz文件并写入数据 $gz = gzopen($gzfilename, 'w9'); gzwrite($gz, file_get_contents($filename)); gzclose($gz); echo "文件压缩成功"; ?>
(2) pemampatan zip
Zip ialah format fail termampat popular yang boleh memampatkan berbilang fail ke dalam satu fail zip. Anda boleh menggunakan kelas ZipArchive dalam PHP untuk mengendalikan fail zip, termasuk menambah fail pada fail zip, memadam fail, menamakan semula fail, dsb.
Kod sampel:
<?php $zipname = "example.zip"; $filename_array = array("example.txt", "example2.txt", "example3.txt"); // 新建一个ZipArchive对象 $zip = new ZipArchive(); $zip->open($zipname, ZipArchive::CREATE); // 把多个文件压缩到Zip包中 foreach ($filename_array as $filename) { // 向Zip包中添加文件 $zip->addFile($filename); } // 关闭ZipArchive对象 $zip->close(); echo "文件压缩成功"; ?>
(3) pemampatan tar
tar boleh membungkus berbilang fail ke dalam fail .tar, tetapi tidak memampatkannya. Dalam PHP, anda boleh menggunakan fungsi exec() untuk memanggil arahan tar untuk menyelesaikan operasi pembungkusan.
Kod sampel:
<?php $dir = "/path/to/directory"; // 需要打包的目录 $tarname = "example.tar"; // 打包后的文件名 // 执行tar命令,把$dir目录下的所有文件打包成$tarname文件 exec("tar -cvf " . $tarname . " " . $dir); echo "文件打包成功"; ?>
(1) penyahmampatan gzip
Fail mampat gzip boleh digunakan dengan gzopen ( ) fungsi dibuka dan data dibaca menggunakan fungsi gzread(). Jika anda perlu menyahmampat fail termampat, anda boleh menggunakan fungsi gzopen() untuk membuka fail termampat dalam mod baca dan gunakan fungsi file_get_contents() untuk membaca kandungan ke dalam rentetan.
Kod contoh:
<?php $gzfilename = "example.txt.gz"; $outputname = "example.txt"; // 打开gz文件并解压缩 $gz = gzopen($gzfilename, 'r'); $output = file_get_contents("compress.zlib://$gz"); // 把解压缩后的数据写入文件 file_put_contents($outputname, $output); echo "文件解压缩成功"; ?>
(2) penyahmampatan zip
Fungsi extractTo() kelas ZipArchive boleh menyahmampat satu atau lebih fail daripada fail zip dan Direktori output boleh ditentukan.
Kod sampel:
<?php $zipname = "example.zip"; $outputdir = "/path/to/output/dir"; // 新建一个ZipArchive对象并打开zip文件 $zip = new ZipArchive(); $zip->open($zipname); // 解压缩zip文件 $zip->extractTo($outputdir); // 关闭ZipArchive对象 $zip->close(); echo "文件解压缩成功"; ?>
(3) penyahmampatan tar
Fail tar boleh dinyahmampat dalam terminal dengan memanggil arahan tar menggunakan fungsi exec().
Kod contoh:
<?php $tarname = "example.tar"; $outputdir = "/path/to/output/dir"; // 执行tar命令,在$outputdir目录下解压缩$tarname文件 exec("tar -xvf " . $tarname . " -C " . $outputdir); echo "文件解压缩成功"; ?>
Di atas ialah penjelasan terperinci tentang fungsi fail pemampatan dan penyahmampatan dalam PHP Dengan menggunakan fungsi ini secara fleksibel, kami boleh melengkapkan operasi pemampatan dan penyahmampatan fail dengan mudah, yang bertambah baik kecekapan pembangunan kami.
Atas ialah kandungan terperinci Aplikasi PHP: penerangan terperinci tentang fungsi fail pemampatan dan penyahmampatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!