如果我理解正確:
$contents = '/tmp/HTML';
// Make the directory
mkdir($contents);
// Write the html
file_put_contents("$contents/index.html", $html);
// Zip it up
$return_value = -1;
$output = array();
exec("zip -r contents.zip $contents 2>&1", $output, $return_value);
if ($return_value === 0){
// No errors
// You now have contents.zip to play with
} else {
echo "Errors!";
print_r($output);
}
我不使用庫來壓縮它,只需在命令行,但如果你願意,你可以使用一個庫(但我檢查查看zip
是否正確執行)。
如果你真的想這樣做真正在內存中的一切,你可以這樣做:
$zip = new ZipArchive;
if ($zip->open('contents.zip') === TRUE) {
$zip->addFromString('contents/index.html', $html);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
http://www.php.net/manual/en/ziparchive.addfromstring.php
來源
2012-07-08 10:06:26
Jay
mkdir創建文件夾和file_put_contents在ftp上創建文件,我不想做的事情。這個想法是在變量內創建文件夾和文件,並將結果壓縮。沒有真正的創造,所有的行爲都應該記憶。不管怎樣,謝謝。 – James 2012-07-08 10:16:28
如果你在'/ tmp'中做了所有的事情,那麼技術上可以滿足你的要求,因爲'/ tmp'是一個安裝在RAM(即內存)中的文件系統。不過,請參閱我的編輯,以便在PHP內存中完成整個操作。 – Jay 2012-07-08 10:24:20