PHP变量转换为.sql,压缩它,然后下载
我正在生成mySQL脚本。结果是这样的PHP变量转换为.sql,压缩它,然后下载,php,mysql,download,Php,Mysql,Download,我正在生成mySQL脚本。结果是这样的 INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2'); INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2'); INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2'); INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2'); INSERT INTO `TABLE` (`v1`,
INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2');
INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2');
INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2');
INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2');
INSERT INTO `TABLE` (`v1`,`v2`) VALUES ('1', '2');
有一万多行。我将所有这些赋值给一个名为$sql\u dump的变量
然后,我使用以下脚本下载此变量
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=backup_export.sql");
echo $sql_dump;
它工作得非常好。但是,该文件太大,可能高达20mb。而不是将其作为.sql文件下载。我想压缩并下载它。我不想在服务器上保留任何内容。它应该在运行中生成。就像我们从phpmyadmin中转储mySQL一样,当我们选择下载为压缩时
请帮助,谢谢在生成sql文件后,您可以使用php函数和zip服务器函数压缩文件。之后,您需要检查并下载。
您需要一个文件夹来存储文件,一个rutine来清理服务器,我的意思是删除所有zip生成的文件。您可以使用file\u put\u content将字符串内容放入文件中,然后创建一个zip
$file = 'abc.sql';
file_put_contents($file, $sql_dump);
$z = new ZipArchive();
$z->open("sqldump.zip", ZIPARCHIVE::CREATE);
$current = file_get_contents($file);
$z->addFile($current);
$z->close();
请参阅相关下的Q&A=>。