1

I have a php script that backup my table in .sql format and I want to save the file in gzip format using PHP. How can I do that.

3 Answers 3

5

You can also use a filter. From the manual page:

<?php $params = array('level' => 6, 'window' => 15, 'memory' => 9); $original_text = "You SQL queries here..."; $fp = fopen('yourfile.sql.gz', 'w'); stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params); fwrite($fp, $original_text); fclose($fp); ?> 
Sign up to request clarification or add additional context in comments.

Comments

2

Use the Zlib functions.

Read the documentation for details

An example taken straight from the linked page:

<?php $filename = tempnam('/tmp', 'zlibtest') . '.gz'; $s = "Only a test, test, test, test, test, test, test, test!\n"; /***** WRITING THE FILE *****/ // open file for writing with maximum compression $zp = gzopen($filename, "w9"); // write string to file gzwrite($zp, $s); // close file gzclose($zp); /***** READING IT *****/ // open file for reading $zp = gzopen($filename, "r"); // read 3 char echo gzread($zp, 3); // output until end of the file and close it. gzpassthru($zp); gzclose($zp); /***** ANOTHER WAY TO READ (and print) IT *****/ // open file and print content (the 2nd time). if (readgzfile($filename) != strlen($s)) { echo "Error with zlib functions!"; } ?> 

Hope that helps.

Comments

1

Here is another solution which basically picks up Carlos Lima idea:

<?php ob_start(); /* start buffering */ echo "your cvs or sql output!"; $content = ob_get_contents(); /* get the buffer */ ob_end_clean(); $content = gzencode($content, 9); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: Download SQL Export"); header('Content-Disposition: attachment; filename=test.txt.gz'); echo $content; die(); ?> 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.