Php makeing una copia de seguridad
- seularts
- Graduate


- Registrado: Ene 02, 2007
- Mensajes: 147
- Loc: Romania
- Status: Offline
Ok. Me las arreglé para hacer algo como esto:
Yo classs CreateZipFile de clases php!
pero todavía hay un pequeño problema. El archivo no contiene todas las carpetas vacías dentro de la carpeta binarios.
Yo classs CreateZipFile de clases php!
Código: [ Select ]
<?php
include_once 'CreateZipFile.inc.php';
$createZip = new CreateZipFile;
$createZip->zipDirectory('binary', '');
$zipFileName = 'backup.zip';
$handle = fopen($zipFileName, 'wb');
$out = fwrite($handle, $createZip->getZippedFile());
fclose($handle);
$createZip->forceDownload($zipFileName);
@unlink($zipFileName);
?>
include_once 'CreateZipFile.inc.php';
$createZip = new CreateZipFile;
$createZip->zipDirectory('binary', '');
$zipFileName = 'backup.zip';
$handle = fopen($zipFileName, 'wb');
$out = fwrite($handle, $createZip->getZippedFile());
fclose($handle);
$createZip->forceDownload($zipFileName);
@unlink($zipFileName);
?>
- <?php
- include_once 'CreateZipFile.inc.php';
- $createZip = new CreateZipFile;
- $createZip->zipDirectory('binary', '');
- $zipFileName = 'backup.zip';
- $handle = fopen($zipFileName, 'wb');
- $out = fwrite($handle, $createZip->getZippedFile());
- fclose($handle);
- $createZip->forceDownload($zipFileName);
- @unlink($zipFileName);
- ?>
pero todavía hay un pequeño problema. El archivo no contiene todas las carpetas vacías dentro de la carpeta binarios.
- Anonymous
- Bot


- Registrado: 25 Feb 2008
- Mensajes: ?
- Loc: Ozzuland
- Status: Online
Agosto 13th, 2010, 11:11 am
- seularts
- Graduate


- Registrado: Ene 02, 2007
- Mensajes: 147
- Loc: Romania
- Status: Offline
Aquí está el resto del código:
Todavía no puede averiguar dónde también cambiar el guión para aceptar los directorios vacíos
Código: [ Select ]
<?php
/**
* Class to dynamically create a zip file (archive) of file(s) and/or directory
*
* @author Rochak Chauhan
* @package CreateZipFile
* @see Distributed under "General Public License"
*
* @version 1.0
*/
class CreateZipFile {
public $compressedData = array();
public $centralDirectory = array(); // central directory
public $endOfCentralDirectory = "\x50\x4b\x05\x06\x00\x00\x00\x00"; //end of Central directory record
public $oldOffset = 0;
/**
* Function to create the directory where the file(s) will be unzipped
*
* @param string $directoryName
* @access public
* @return void
*/
public function addDirectory($directoryName) {
$directoryName = str_replace("\", "/", $directoryName);
$feedArrayRow = "\x50\x4b\x03\x04";
$feedArrayRow .= "\x0a\x00";
$feedArrayRow .= "\x00\x00";
$feedArrayRow .= "\x00\x00";
$feedArrayRow .= "\x00\x00\x00\x00";
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("v", strlen($directoryName) );
$feedArrayRow .= pack("v", 0 );
$feedArrayRow .= $directoryName;
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0);
$this->compressedData[] = $feedArrayRow;
$newOffset = strlen(implode("", $this->compressedData));
$addCentralRecord = "\x50\x4b\x01\x02";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x0a\x00";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x00\x00\x00\x00";
$addCentralRecord .= pack("V",0);
$addCentralRecord .= pack("V",0);
$addCentralRecord .= pack("V",0);
$addCentralRecord .= pack("v", strlen($directoryName) );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("V", 16 );
$addCentralRecord .= pack("V", $this->oldOffset );
$this->oldOffset = $newOffset;
$addCentralRecord .= $directoryName;
$this->centralDirectory[] = $addCentralRecord;
}
/**
* Function to add file(s) to the specified directory in the archive
*
* @param string $directoryName
* @param string $data
* @return void
* @access public
*/
public function addFile($data, $directoryName) {
$directoryName = str_replace("\", "/", $directoryName);
$feedArrayRow = "\x50\x4b\x03\x04";
$feedArrayRow .= "\x14\x00";
$feedArrayRow .= "\x00\x00";
$feedArrayRow .= "\x08\x00";
$feedArrayRow .= "\x00\x00\x00\x00";
$uncompressedLength = strlen($data);
$compression = crc32($data);
$gzCompressedData = gzcompress($data);
$gzCompressedData = substr( substr($gzCompressedData, 0, strlen($gzCompressedData) - 4), 2);
$compressedLength = strlen($gzCompressedData);
$feedArrayRow .= pack("V",$compression);
$feedArrayRow .= pack("V",$compressedLength);
$feedArrayRow .= pack("V",$uncompressedLength);
$feedArrayRow .= pack("v", strlen($directoryName) );
$feedArrayRow .= pack("v", 0 );
$feedArrayRow .= $directoryName;
$feedArrayRow .= $gzCompressedData;
$feedArrayRow .= pack("V",$compression);
$feedArrayRow .= pack("V",$compressedLength);
$feedArrayRow .= pack("V",$uncompressedLength);
$this->compressedData[] = $feedArrayRow;
$newOffset = strlen(implode("", $this->compressedData));
$addCentralRecord = "\x50\x4b\x01\x02";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x14\x00";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x08\x00";
$addCentralRecord .="\x00\x00\x00\x00";
$addCentralRecord .= pack("V",$compression);
$addCentralRecord .= pack("V",$compressedLength);
$addCentralRecord .= pack("V",$uncompressedLength);
$addCentralRecord .= pack("v", strlen($directoryName) );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("V", 32 );
$addCentralRecord .= pack("V", $this->oldOffset );
$this->oldOffset = $newOffset;
$addCentralRecord .= $directoryName;
$this->centralDirectory[] = $addCentralRecord;
}
/**
* Function to return the zip file
*
* @return zipfile (archive)
* @access public
* @return void
*/
public function getZippedfile() {
$data = implode("", $this->compressedData);
$controlDirectory = implode("", $this->centralDirectory);
return
$data.
$controlDirectory.
$this->endOfCentralDirectory.
pack("v", sizeof($this->centralDirectory)).
pack("v", sizeof($this->centralDirectory)).
pack("V", strlen($controlDirectory)).
pack("V", strlen($data)).
"\x00\x00";
}
/**
*
* Function to force the download of the archive as soon as it is created
*
* @param archiveName string - name of the created archive file
* @access public
* @return ZipFile via Header
*/
public function forceDownload($archiveName) {
if(ini_get('zlib.output_compression')) {
ini_set('zlib.output_compression', 'Off');
}
// Security checks
if( $archiveName == "" ) {
echo "<html><title>Public Photo Directory - Download </title><body><BR><B>ERROR:</B> The download file was NOT SPECIFIED.</body></html>";
exit;
}
elseif ( ! file_exists( $archiveName ) ) {
echo "<html><title>Public Photo Directory - Download </title><body><BR><B>ERROR:</B> File not found.</body></html>";
exit;
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=".basename($archiveName).";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($archiveName));
readfile("$archiveName");
}
/**
* Function to parse a directory to return all its files and sub directories as array
*
* @param string $dir
* @access protected
* @return array
*/
protected function parseDirectory($rootPath, $seperator="/"){
$fileArray=array();
$handle = opendir($rootPath);
while( ($file = @readdir($handle))!==false) {
if($file !='.' && $file !='..'){
if (is_dir($rootPath.$seperator.$file)){
$array=$this->parseDirectory($rootPath.$seperator.$file);
$fileArray=array_merge($array,$fileArray);
}
else {
$fileArray[]=$rootPath.$seperator.$file;
}
}
}
return $fileArray;
}
/**
* Function to Zip entire directory with all its files and subdirectories
*
* @param string $dirName
* @access public
* @return void
*/
public function zipDirectory($dirName, $outputDir) {
if (!is_dir($dirName)){
trigger_error("CreateZipFile FATAL ERROR: Could not locate the specified directory $dirName", E_USER_ERROR);
}
$tmp=$this->parseDirectory($dirName);
$count=count($tmp);
$this->addDirectory($outputDir);
for ($i=0;$i<$count;$i++){
$fileToZip=trim($tmp[$i]);
$newOutputDir=substr($fileToZip,0,(strrpos($fileToZip,'/')+1));
$outputDir=$outputDir.$newOutputDir;
$fileContents=file_get_contents($fileToZip);
$this->addFile($fileContents,$fileToZip);
}
}
}
?>
/**
* Class to dynamically create a zip file (archive) of file(s) and/or directory
*
* @author Rochak Chauhan
* @package CreateZipFile
* @see Distributed under "General Public License"
*
* @version 1.0
*/
class CreateZipFile {
public $compressedData = array();
public $centralDirectory = array(); // central directory
public $endOfCentralDirectory = "\x50\x4b\x05\x06\x00\x00\x00\x00"; //end of Central directory record
public $oldOffset = 0;
/**
* Function to create the directory where the file(s) will be unzipped
*
* @param string $directoryName
* @access public
* @return void
*/
public function addDirectory($directoryName) {
$directoryName = str_replace("\", "/", $directoryName);
$feedArrayRow = "\x50\x4b\x03\x04";
$feedArrayRow .= "\x0a\x00";
$feedArrayRow .= "\x00\x00";
$feedArrayRow .= "\x00\x00";
$feedArrayRow .= "\x00\x00\x00\x00";
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("v", strlen($directoryName) );
$feedArrayRow .= pack("v", 0 );
$feedArrayRow .= $directoryName;
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0);
$this->compressedData[] = $feedArrayRow;
$newOffset = strlen(implode("", $this->compressedData));
$addCentralRecord = "\x50\x4b\x01\x02";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x0a\x00";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x00\x00\x00\x00";
$addCentralRecord .= pack("V",0);
$addCentralRecord .= pack("V",0);
$addCentralRecord .= pack("V",0);
$addCentralRecord .= pack("v", strlen($directoryName) );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("V", 16 );
$addCentralRecord .= pack("V", $this->oldOffset );
$this->oldOffset = $newOffset;
$addCentralRecord .= $directoryName;
$this->centralDirectory[] = $addCentralRecord;
}
/**
* Function to add file(s) to the specified directory in the archive
*
* @param string $directoryName
* @param string $data
* @return void
* @access public
*/
public function addFile($data, $directoryName) {
$directoryName = str_replace("\", "/", $directoryName);
$feedArrayRow = "\x50\x4b\x03\x04";
$feedArrayRow .= "\x14\x00";
$feedArrayRow .= "\x00\x00";
$feedArrayRow .= "\x08\x00";
$feedArrayRow .= "\x00\x00\x00\x00";
$uncompressedLength = strlen($data);
$compression = crc32($data);
$gzCompressedData = gzcompress($data);
$gzCompressedData = substr( substr($gzCompressedData, 0, strlen($gzCompressedData) - 4), 2);
$compressedLength = strlen($gzCompressedData);
$feedArrayRow .= pack("V",$compression);
$feedArrayRow .= pack("V",$compressedLength);
$feedArrayRow .= pack("V",$uncompressedLength);
$feedArrayRow .= pack("v", strlen($directoryName) );
$feedArrayRow .= pack("v", 0 );
$feedArrayRow .= $directoryName;
$feedArrayRow .= $gzCompressedData;
$feedArrayRow .= pack("V",$compression);
$feedArrayRow .= pack("V",$compressedLength);
$feedArrayRow .= pack("V",$uncompressedLength);
$this->compressedData[] = $feedArrayRow;
$newOffset = strlen(implode("", $this->compressedData));
$addCentralRecord = "\x50\x4b\x01\x02";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x14\x00";
$addCentralRecord .="\x00\x00";
$addCentralRecord .="\x08\x00";
$addCentralRecord .="\x00\x00\x00\x00";
$addCentralRecord .= pack("V",$compression);
$addCentralRecord .= pack("V",$compressedLength);
$addCentralRecord .= pack("V",$uncompressedLength);
$addCentralRecord .= pack("v", strlen($directoryName) );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("v", 0 );
$addCentralRecord .= pack("V", 32 );
$addCentralRecord .= pack("V", $this->oldOffset );
$this->oldOffset = $newOffset;
$addCentralRecord .= $directoryName;
$this->centralDirectory[] = $addCentralRecord;
}
/**
* Function to return the zip file
*
* @return zipfile (archive)
* @access public
* @return void
*/
public function getZippedfile() {
$data = implode("", $this->compressedData);
$controlDirectory = implode("", $this->centralDirectory);
return
$data.
$controlDirectory.
$this->endOfCentralDirectory.
pack("v", sizeof($this->centralDirectory)).
pack("v", sizeof($this->centralDirectory)).
pack("V", strlen($controlDirectory)).
pack("V", strlen($data)).
"\x00\x00";
}
/**
*
* Function to force the download of the archive as soon as it is created
*
* @param archiveName string - name of the created archive file
* @access public
* @return ZipFile via Header
*/
public function forceDownload($archiveName) {
if(ini_get('zlib.output_compression')) {
ini_set('zlib.output_compression', 'Off');
}
// Security checks
if( $archiveName == "" ) {
echo "<html><title>Public Photo Directory - Download </title><body><BR><B>ERROR:</B> The download file was NOT SPECIFIED.</body></html>";
exit;
}
elseif ( ! file_exists( $archiveName ) ) {
echo "<html><title>Public Photo Directory - Download </title><body><BR><B>ERROR:</B> File not found.</body></html>";
exit;
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=".basename($archiveName).";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($archiveName));
readfile("$archiveName");
}
/**
* Function to parse a directory to return all its files and sub directories as array
*
* @param string $dir
* @access protected
* @return array
*/
protected function parseDirectory($rootPath, $seperator="/"){
$fileArray=array();
$handle = opendir($rootPath);
while( ($file = @readdir($handle))!==false) {
if($file !='.' && $file !='..'){
if (is_dir($rootPath.$seperator.$file)){
$array=$this->parseDirectory($rootPath.$seperator.$file);
$fileArray=array_merge($array,$fileArray);
}
else {
$fileArray[]=$rootPath.$seperator.$file;
}
}
}
return $fileArray;
}
/**
* Function to Zip entire directory with all its files and subdirectories
*
* @param string $dirName
* @access public
* @return void
*/
public function zipDirectory($dirName, $outputDir) {
if (!is_dir($dirName)){
trigger_error("CreateZipFile FATAL ERROR: Could not locate the specified directory $dirName", E_USER_ERROR);
}
$tmp=$this->parseDirectory($dirName);
$count=count($tmp);
$this->addDirectory($outputDir);
for ($i=0;$i<$count;$i++){
$fileToZip=trim($tmp[$i]);
$newOutputDir=substr($fileToZip,0,(strrpos($fileToZip,'/')+1));
$outputDir=$outputDir.$newOutputDir;
$fileContents=file_get_contents($fileToZip);
$this->addFile($fileContents,$fileToZip);
}
}
}
?>
- <?php
- /**
- * Class to dynamically create a zip file (archive) of file(s) and/or directory
- *
- * @author Rochak Chauhan
- * @package CreateZipFile
- * @see Distributed under "General Public License"
- *
- * @version 1.0
- */
- class CreateZipFile {
- public $compressedData = array();
- public $centralDirectory = array(); // central directory
- public $endOfCentralDirectory = "\x50\x4b\x05\x06\x00\x00\x00\x00"; //end of Central directory record
- public $oldOffset = 0;
- /**
- * Function to create the directory where the file(s) will be unzipped
- *
- * @param string $directoryName
- * @access public
- * @return void
- */
- public function addDirectory($directoryName) {
- $directoryName = str_replace("\", "/", $directoryName);
- $feedArrayRow = "\x50\x4b\x03\x04";
- $feedArrayRow .= "\x0a\x00";
- $feedArrayRow .= "\x00\x00";
- $feedArrayRow .= "\x00\x00";
- $feedArrayRow .= "\x00\x00\x00\x00";
- $feedArrayRow .= pack("V",0);
- $feedArrayRow .= pack("V",0);
- $feedArrayRow .= pack("V",0);
- $feedArrayRow .= pack("v", strlen($directoryName) );
- $feedArrayRow .= pack("v", 0 );
- $feedArrayRow .= $directoryName;
- $feedArrayRow .= pack("V",0);
- $feedArrayRow .= pack("V",0);
- $feedArrayRow .= pack("V",0);
- $this->compressedData[] = $feedArrayRow;
- $newOffset = strlen(implode("", $this->compressedData));
- $addCentralRecord = "\x50\x4b\x01\x02";
- $addCentralRecord .="\x00\x00";
- $addCentralRecord .="\x0a\x00";
- $addCentralRecord .="\x00\x00";
- $addCentralRecord .="\x00\x00";
- $addCentralRecord .="\x00\x00\x00\x00";
- $addCentralRecord .= pack("V",0);
- $addCentralRecord .= pack("V",0);
- $addCentralRecord .= pack("V",0);
- $addCentralRecord .= pack("v", strlen($directoryName) );
- $addCentralRecord .= pack("v", 0 );
- $addCentralRecord .= pack("v", 0 );
- $addCentralRecord .= pack("v", 0 );
- $addCentralRecord .= pack("v", 0 );
- $addCentralRecord .= pack("V", 16 );
- $addCentralRecord .= pack("V", $this->oldOffset );
- $this->oldOffset = $newOffset;
- $addCentralRecord .= $directoryName;
- $this->centralDirectory[] = $addCentralRecord;
- }
- /**
- * Function to add file(s) to the specified directory in the archive
- *
- * @param string $directoryName
- * @param string $data
- * @return void
- * @access public
- */
- public function addFile($data, $directoryName) {
- $directoryName = str_replace("\", "/", $directoryName);
- $feedArrayRow = "\x50\x4b\x03\x04";
- $feedArrayRow .= "\x14\x00";
- $feedArrayRow .= "\x00\x00";
- $feedArrayRow .= "\x08\x00";
- $feedArrayRow .= "\x00\x00\x00\x00";
- $uncompressedLength = strlen($data);
- $compression = crc32($data);
- $gzCompressedData = gzcompress($data);
- $gzCompressedData = substr( substr($gzCompressedData, 0, strlen($gzCompressedData) - 4), 2);
- $compressedLength = strlen($gzCompressedData);
- $feedArrayRow .= pack("V",$compression);
- $feedArrayRow .= pack("V",$compressedLength);
- $feedArrayRow .= pack("V",$uncompressedLength);
- $feedArrayRow .= pack("v", strlen($directoryName) );
- $feedArrayRow .= pack("v", 0 );
- $feedArrayRow .= $directoryName;
- $feedArrayRow .= $gzCompressedData;
- $feedArrayRow .= pack("V",$compression);
- $feedArrayRow .= pack("V",$compressedLength);
- $feedArrayRow .= pack("V",$uncompressedLength);
- $this->compressedData[] = $feedArrayRow;
- $newOffset = strlen(implode("", $this->compressedData));
- $addCentralRecord = "\x50\x4b\x01\x02";
- $addCentralRecord .="\x00\x00";
- $addCentralRecord .="\x14\x00";
- $addCentralRecord .="\x00\x00";
- $addCentralRecord .="\x08\x00";
- $addCentralRecord .="\x00\x00\x00\x00";
- $addCentralRecord .= pack("V",$compression);
- $addCentralRecord .= pack("V",$compressedLength);
- $addCentralRecord .= pack("V",$uncompressedLength);
- $addCentralRecord .= pack("v", strlen($directoryName) );
- $addCentralRecord .= pack("v", 0 );
- $addCentralRecord .= pack("v", 0 );
- $addCentralRecord .= pack("v", 0 );
- $addCentralRecord .= pack("v", 0 );
- $addCentralRecord .= pack("V", 32 );
- $addCentralRecord .= pack("V", $this->oldOffset );
- $this->oldOffset = $newOffset;
- $addCentralRecord .= $directoryName;
- $this->centralDirectory[] = $addCentralRecord;
- }
- /**
- * Function to return the zip file
- *
- * @return zipfile (archive)
- * @access public
- * @return void
- */
- public function getZippedfile() {
- $data = implode("", $this->compressedData);
- $controlDirectory = implode("", $this->centralDirectory);
- return
- $data.
- $controlDirectory.
- $this->endOfCentralDirectory.
- pack("v", sizeof($this->centralDirectory)).
- pack("v", sizeof($this->centralDirectory)).
- pack("V", strlen($controlDirectory)).
- pack("V", strlen($data)).
- "\x00\x00";
- }
- /**
- *
- * Function to force the download of the archive as soon as it is created
- *
- * @param archiveName string - name of the created archive file
- * @access public
- * @return ZipFile via Header
- */
- public function forceDownload($archiveName) {
- if(ini_get('zlib.output_compression')) {
- ini_set('zlib.output_compression', 'Off');
- }
- // Security checks
- if( $archiveName == "" ) {
- echo "<html><title>Public Photo Directory - Download </title><body><BR><B>ERROR:</B> The download file was NOT SPECIFIED.</body></html>";
- exit;
- }
- elseif ( ! file_exists( $archiveName ) ) {
- echo "<html><title>Public Photo Directory - Download </title><body><BR><B>ERROR:</B> File not found.</body></html>";
- exit;
- }
- header("Pragma: public");
- header("Expires: 0");
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- header("Cache-Control: private",false);
- header("Content-Type: application/zip");
- header("Content-Disposition: attachment; filename=".basename($archiveName).";" );
- header("Content-Transfer-Encoding: binary");
- header("Content-Length: ".filesize($archiveName));
- readfile("$archiveName");
- }
- /**
- * Function to parse a directory to return all its files and sub directories as array
- *
- * @param string $dir
- * @access protected
- * @return array
- */
- protected function parseDirectory($rootPath, $seperator="/"){
- $fileArray=array();
- $handle = opendir($rootPath);
- while( ($file = @readdir($handle))!==false) {
- if($file !='.' && $file !='..'){
- if (is_dir($rootPath.$seperator.$file)){
- $array=$this->parseDirectory($rootPath.$seperator.$file);
- $fileArray=array_merge($array,$fileArray);
- }
- else {
- $fileArray[]=$rootPath.$seperator.$file;
- }
- }
- }
- return $fileArray;
- }
- /**
- * Function to Zip entire directory with all its files and subdirectories
- *
- * @param string $dirName
- * @access public
- * @return void
- */
- public function zipDirectory($dirName, $outputDir) {
- if (!is_dir($dirName)){
- trigger_error("CreateZipFile FATAL ERROR: Could not locate the specified directory $dirName", E_USER_ERROR);
- }
- $tmp=$this->parseDirectory($dirName);
- $count=count($tmp);
- $this->addDirectory($outputDir);
- for ($i=0;$i<$count;$i++){
- $fileToZip=trim($tmp[$i]);
- $newOutputDir=substr($fileToZip,0,(strrpos($fileToZip,'/')+1));
- $outputDir=$outputDir.$newOutputDir;
- $fileContents=file_get_contents($fileToZip);
- $this->addFile($fileContents,$fileToZip);
- }
- }
- }
- ?>
Todavía no puede averiguar dónde también cambiar el guión para aceptar los directorios vacíos
Página 1 de 1
Para responder a este tema que necesita para ingresar o registrarse. Es gratis.
Publicar Información
- Total de mensajes en este tema: 2 mensajes
- Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 100 invitados
- No puede abrir nuevos temas en este Foro
- No puede responder a temas en este Foro
- No puede editar sus mensajes en este Foro
- No puede borrar sus mensajes en este Foro
- No puede enviar adjuntos en este Foro
