我想做個線上匯出markdown文章的功能,把使用者的所以文章產生文字檔,然後打包成zip檔案,讓使用者下載。
php怎麼打包,有什麼好的類,最好是laravel的包?
還有怎麼做才能在最上層顯示打包進度?
回複內容:
我想做個線上匯出markdown文章的功能,把使用者的所以文章產生文字檔,然後打包成zip檔案,讓使用者下載。
php怎麼打包,有什麼好的類,最好是laravel的包?
還有怎麼做才能在最上層顯示打包進度?
PHP內建類 ZipArchive
以下為PHP手冊內建樣本
// Example #1 建立一個 Zip 歸檔open($filename, ZIPARCHIVE::CREATE)!==TRUE) { exit("cannot open <$filename>\n");}$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n");$zip->addFile($thisdir . "/too.php","/testfromfile.php");echo "numfiles: " . $zip->numFiles . "\n";echo "status:" . $zip->status . "\n";$zip->close();?> // Example #2 輸出文檔細節和列表open('test_with_comment.zip');print_r($za);var_dump($za);echo "numFiles: " . $za->numFiles . "\n";echo "status: " . $za->status . "\n";echo "statusSys: " . $za->statusSys . "\n";echo "filename: " . $za->filename . "\n";echo "comment: " . $za->comment . "\n";for ($i=0; $i<$za->numFiles;$i++) { echo "index: $i\n"; print_r($za->statIndex($i));}echo "numFile:" . $za->numFiles . "\n";?> // Example #3 Zip 流封裝,讀取一個 OpenOffice 檔案的元資訊open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');$odt_meta = array();while ($reader->read()) { if ($reader->nodeType == XMLREADER::ELEMENT) { $elm = $reader->name; } else { if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') { break; } if (!trim($reader->value)) { continue; } $odt_meta[$elm] = $reader->value; }}print_r($odt_meta);?> // 此例使用了舊的 API(PHP 4),它開啟了一個 ZIP 檔案歸檔,讀取歸檔裡的每個檔案,並輸出檔案內容。此例用到的 test2.zip 文檔是 ZZIPlib 源分布裡測試文檔中的一個。 // Example #4 Zip 使用範例