Jump to content

spyder

New Members
  • Posts

    3
  • Joined

  • Last visited

    Never

Profile Information

  • Gender
    Not Telling

spyder's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. Hi I am new with php. I am looking for a directory listing code which fetches the listing of an individual directory including folders and filenames which are modified within "x" number of days and display the results as a link to the dir or file. I read a few articles and notes on php.net related to dir but none of them came in handy.
  2. Thanks for the script but there is a little bug in it. As I run the test.php in my browser it gives me the following error.. Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/punjabio/public_html/music/a/zip.php on line 11 I didn't modify the zip.php at all. It's just the way the author wrote it from the link that you had given me. [code] <?php /** * Class to dynamically create a zip file (archive) * * @author Rochak Chauhan */ class createZip  {  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 $directoryName string * */ 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 ); $ext = "\x00\x00\x10\x00"; $ext = "\xff\xff\xff\xff";  $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 $directoryName string * */ 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;  } /** * Fucntion to return the zip file * * @return zipfile (archive) */ 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 */ public function forceDownload($archiveName) { $headerInfo = ''; 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"); } } ?> [/code]
  3. Hello, I adminstrate a site which offers mp3 albums to a community.I am pretty new with php and I needed a small code which would convert all mp3 files in a directory to a .zip archive and display a download link to the archive. Also, once downloaded it deletes the zip archive.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.