我使用phpmyadmin
从数据库导出了一个SQL文件。该文件名为final.sql.bz2
,然后我将其上传到我的Live Server。
问题是,如何使用PHP代码提取该文件?我试图在谷歌搜索,但没有得到任何结果。我怎么能unzip
呢?
答案 0 :(得分:4)
您应该使用PHP中的bzip
函数而不是它们不同的zip
函数。
http://php.net/manual/en/book.bzip2.php
或者,如果可能,您可以使用exec
执行bunzip2
命令从存档中提取文件:
bunzip2 [DATEI].bz2
答案 1 :(得分:0)
我需要在共享主机中解压缩bz2,其中tar
无法帮助我解压缩(bzip2和lbzip2出错,并且我无法安装任何东西或执行sudo ...)
我通过创建一个php文件并从命令行运行它来解决它(当然,您也可以修改脚本以在线使用它)。
bunzip2.php
<?php
function decompress($data)
{
// Decompress the file
if (@file_exists($data)) {
$bz = bzopen($data, 'r');
$uncompressed = '';
// Read the uncompressed data.
while (!feof($bz)) {
$uncompressed .= bzread($bz, 4096);
}
// Close the Bzip2 compressed file and write
// the data to the uncompressed file.
bzclose($bz);
if (stripos($data, '.tbz2') !== false) {
$newFile = str_replace('.tbz2', '.tar', $data);
} else {
if (stripos($data, '.tbz') !== false) {
$newFile = str_replace('.tbz', '.tar', $data);
} else {
$newFile = str_replace('.bz2', '', $data);
}
}
file_put_contents($newFile, $uncompressed);
return $newFile;
// Else, decompress the string
} else {
return bzdecompress($data);
}
}
decompress($argv[1]);
?>
php bunzip2.php my.tar.bz2
(我只是在github上搜索了bz2 + php,我没有详细检查代码,但是它能完成工作;)