使用zlib函数之前,运行phpinfo()来确定php支持这个库
格式:
$fp - gzopen('filename.gz', 'w5');
gzwrite($fp, 'data');
gzclose($fp);
再打开一个文件时,使用这些字母来设置模式。对于gzopen,我们还可以设置压缩级别(1到9),并且可以利用f、h和b来进一步调整模式。
r 只读r+ 读和写
w 只写,从文件七点开始w+ 读和写,从文件起点开始
a 只写,从文件末尾开始a+ 读和写,从文件末尾开始
x x+
f 过滤的数据
h 只进行霍夫曼压缩
b 二进制模式
readgzfile() 读取压缩文件,对数据进行解压,返回得到的数据
gzfile() 读取压缩文件,对数据进行解压,以数组形式返回结果(每个元素对应于文件里的一行)
<?php //phpinfo(); $db_name= 'test'; $dir = "backups/$db_name"; if(!is_dir($dir)){ if(!@mkdir($dir)){ die("<p>The backup directory--$dir--could not be created.</p>\n"); } } $time = time(); $dbc = @mysqli_connect('localhost', 'root', '', $db_name) OR die("<p>The database--$db_name--could not be backed up.</p>\n"); $q = 'SHOW TABLES'; $r = mysqli_query($dbc, $q); if(mysqli_num_rows($r) > 0){ echo "<p>Backing up database '$db_name'.</p>\n"; while (list($table) = mysqli_fetch_array($r, MYSQLI_NUM)){ $q2 = "SELECT * FROM $table"; $r2 = mysqli_query($dbc, $q2); if(mysqli_num_rows($r2) > 0){ if($fp = gzopen("$dir/{$table}_{$time}.sql.gz", 'w9')){ while ($row = mysqli_fetch_array($r2, MYSQLI_NUM)){ foreach ($row as $value){ gzwrite($fp, "'$value', "); } gzwrite($fp, "\n"); } gzclose($fp); echo "<p>Table '$table' backed up.</p>\n"; } else { echo "<p>the file--$dir/{$table}_{$time}.sql.gz--could not be opened for writing.</p>\n"; break; } } } }else { echo "<p>The submitted database--$db_name--contains no tables.</p>\n"; } ?>
萨发速度