PDA

View Full Version : ساخت کدی برای دانلود کل سایت



kabootar_y
سه شنبه 11 آذر 1393, 08:31 صبح
سلام به همه دوستان برنامه نویس حرفه ای

من میخوام یه فایل php به نام download.php درست کنم که در پوشه اصلی وردپرس آپلود کنم. توسط این فایل می خوام کل فایل ها و پوشه هایی که در دسترسش هست رو در یک فایل zip بهم بده.

مثلا فایل download.php رو در پوشه public_html آپلود کنم بعد هر چی فایل و پوشه در public_html هست رو برام در یک فایل زیپ جمع کنه و بتونم فایل زیپ رو دانلود کنم

kabootar_y
سه شنبه 11 آذر 1393, 16:18 عصر
جدی چدی کسی بلد نیست؟

HaZeM+
سه شنبه 11 آذر 1393, 17:57 عصر
سلام به همه دوستان برنامه نویس حرفه ای

من میخوام یه فایل php به نام download.php درست کنم که در پوشه اصلی وردپرس آپلود کنم. توسط این فایل می خوام کل فایل ها و پوشه هایی که در دسترسش هست رو در یک فایل zip بهم بده.

مثلا فایل download.php رو در پوشه public_html آپلود کنم بعد هر چی فایل و پوشه در public_html هست رو برام در یک فایل زیپ جمع کنه و بتونم فایل زیپ رو دانلود کنم

http://us3.php.net/manual/en/book.zip.php


$dir = '/path/to/dir';
//Permission Folder Backup Ro Roye 777 Tanzim Kon
$backup = '/path/to/backup';
$zip_file = $backup.'/backup.zip';

if ($handle = opendir($dir))
{
$zip = new ZipArchive();

if ($zip->open($zip_file, ZIPARCHIVE::CREATE)!==TRUE)
{
exit("cannot open <$filename>\n");
}

while (false !== ($file = readdir($handle)))
{
$zip->addFile('path/to/dir/'.$file);
echo "$file\n";
}
closedir($handle);
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
echo 'Zip File:'.$zip_file . "\n";
}

bagherok
سه شنبه 11 آذر 1393, 18:14 عصر
جدی چدی کسی بلد نیست؟

همین که بلدیم تو گوگل سرچ کنیم از سرمونم زیاده!!!:متعجب:


http://php.net/manual/en/class.ziparchive.php


<?php
class HZip
{
/**
* Add files and sub-directories in a folder to zip file.
* @param string $folder
* @param ZipArchive $zipFile
* @param int $exclusiveLength Number of text to be exclusived from the file path.
*/
private static function folderToZip($folder, &$zipFile, $exclusiveLength) {
$handle = opendir($folder);
while (false !== $f = readdir($handle)) {
if ($f != '.' && $f != '..') {
$filePath = "$folder/$f";
// Remove prefix from file path before add to zip.
$localPath = substr($filePath, $exclusiveLength);
if (is_file($filePath)) {
$zipFile->addFile($filePath, $localPath);
} elseif (is_dir($filePath)) {
// Add sub-directory.
$zipFile->addEmptyDir($localPath);
self::folderToZip($filePath, $zipFile, $exclusiveLength);
}
}
}
closedir($handle);
}

/**
* Zip a folder (include itself).
* Usage:
* HZip::zipDir('/path/to/sourceDir', '/path/to/out.zip');
*
* @param string $sourcePath Path of directory to be zip.
* @param string $outZipPath Path of output zip file.
*/
public static function zipDir($sourcePath, $outZipPath)
{
$pathInfo = pathInfo($sourcePath);
$parentPath = $pathInfo['dirname'];
$dirName = $pathInfo['basename'];

$z = new ZipArchive();
$z->open($outZipPath, ZIPARCHIVE::CREATE);
$z->addEmptyDir($dirName);
self::folderToZip($sourcePath, $z, strlen("$parentPath/"));
$z->close();
}
}

HZip::zipDir('/var/www/html/test/zip', '/var/www/html/test/zip/out.zip');

?>