此教學為直接產生文件檔再壓縮後直接下載。
一、用法介紹:
1. file_put_contents(文件位置, 訊息):將數據寫入文件
例:file_put_contents("/", "你好嗎?!")
2. unset():銷毀指定的變量。
3. die():此語言構造等效於exit()
4. open($pwd_zip, ZipArchive::CREATE):開啟壓縮檔,ZipArchive::CREATE 為如果存檔不存在,請創建它。
5. addFile(檔案位置加名稱, 檔案名稱):從給定路徑將文件添加到ZIP存檔中。
6. unlink(檔案位置加名稱):刪除文件
7. file_exists():函数检查文件或目录是否存在。
8. header('Content-Disposition: attachment; filename=檔案名稱'):內容描述:檔名
9. readfile(檔案位置):執行完下載
二、程式範例:
<?php
if (!extension_loaded('zip')) {
if (!dl('zip.so')) {
exit;
}
}
$str = "文件檔案內容!!!!";
$file = "test";
$file_txt = $file . ".txt";
$file_zip = $file . ".zip";
$p_txt = "/" . $file_txt;
$p_zip = "/" . $file_zip;
$res_file = file_put_contents($p_txt, $str);
unset($str);
if(FALSE == $res_file){
die("產生檔案失敗!!");
}else{
$zip = new ZipArchive;
$res_zip = $zip->open($p_zip, ZipArchive::CREATE);
if (TRUE == $res_zip) {
$zip->addFile($p_txt, $file_txt);
$zip->close();
unlink($p_txt);
}else{
unlink($p_txt);
die("產生壓縮檔失敗!!");
}
}
if (file_exists($p_zip)) {
header('Content-Disposition: attachment; filename='.basename($p_zip));
readfile($p_zip);
exit;
}
?>
留言列表