function moveDIR($dir, $dest = "", $debug, $nMode = 0755) { //$debug = 1; $result = true; //if($debug) { echo "<h2>Moving directory</h2><p> From:<br> $dir <br>To: $dest</p>";} $path = dirname(__FILE__); $files = scandir($dir); foreach ($files as $file) { if (substr($file, 0, 1) != ".") { $pathFile = $dir . '/' . $file; if (is_dir($pathFile)) { //if($debug) { echo "<p><b>Directory:</b> $pathFile</p>"; } $newDir = $dest . "/" . $file; if (!moveDIR($pathFile, $newDir, $debug)) { $result = false; } } else { //echo ($debug) ? "<p>$pathFile is a file</p>" : ""; // $currentFile = realpath($file); // current location $currentFile = $pathFile; $newFile = $dest . "/" . $file; if (!file_exists($dest)) { makeDIR($dest, 0, $nMode); } // if file already exists remove it if (file_exists($newFile)) { //if($debug) { echo "<p>File $newFile already exists - Deleting</p>"; } unlink($newFile); } else { //if($debug) { echo "<p>File $newFile doesn't exist yet</p>"; } } // Move via rename // rename(oldname, newname) if (rename($currentFile, $newFile)) { CHMOD == 1 ? chmod($newFile, 0755) : ''; //if($debug) { echo "<p>Moved $currentFile to $newFile</p>"; } } else { //if($debug) { echo "<p>Failed to move $currentFile to $newFile</p>"; } $result = false; } // END rename } // END if dir or file } // end if no dot } // END foreach return $result; }
<?php if ($mode == "intro") { include "directions.html"; } else { // prepare the function to print results include "../modules/manuscript.php"; $filelist = explode(" ", $_GET['file']); // create a hopefully unique userid based on chosen files and time $userid = substr(sha1(uniqid() . $_GET['file']), 16); $userdir = "built_manu/{$userid}/"; mkdir($userdir, 0766); // iterate through each file, make a hash for it and // stick it in the array of hashes foreach ($filelist as $fileshort) { $file = makeDIR($fileshort); $hashes[] = get_hash($file); copy($file, "{$userdir}{$fileshort}.csv"); } $hash = merge_hashes($hashes); $hash = sort_hash($hash); // get CSV text and write it to the user file $csvstr = print_hash_to_csv($hash); $USERFH = fopen("{$userdir}selection_STATS.csv", "w"); fwrite($USERFH, $csvstr); fclose($USERFH); // zip the directory and remove it $link = "built_manu_zips/{$userid}.zip"; exec("zip -r {$link} {$userdir}"); exec("rm -fr {$userdir}"); // chmod the zip to be deletable by anything other than apache