Advertisement
Guest User

Untitled

a guest
Jun 25th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.38 KB | None | 0 0
  1. <?php
  2.  
  3. function copyIfUnique( $relPathOffset, $source, $destination, &$checksumArray ) {
  4.     foreach ( scandir( $source ) as $name ) {
  5.         if ( $name === '.' || $name === '..' ) {
  6.             continue;
  7.         }
  8.         $file = $source . DIRECTORY_SEPARATOR . $name;
  9.         if ( is_dir( $file ) ) {
  10.             copyIfUnique( $relPathOffset, $file, $destination, $checksumArray );
  11.         } else {
  12.             $checksum = md5_file( $file );
  13.             if ( ! isset( $checksumArray[$checksum] ) ) {
  14.                 $checksumArray[$checksum] = 1;
  15.                 $relDir = trim( substr( dirname( $file ), $relPathOffset ), '\\/' );
  16.                 if ( ! file_exists( $relDir ) ) {
  17.                     mkdir( $relDir, 0777, true );
  18.                 }
  19.                 copy( $file, $destination . DIRECTORY_SEPARATOR . $relDir . $name );
  20.             }
  21.         }
  22.     }
  23. }
  24.  
  25. function loadChecksums( $directory, &$checksumArray ) {
  26.     foreach ( scandir( $directory ) as $name ) {
  27.         if ( $name === '.' || $name === '..' ) {
  28.             continue;
  29.         }
  30.         $file = $directory . DIRECTORY_SEPARATOR . $name;
  31.         if ( is_dir( $file ) ) {
  32.             loadChecksums( $file, $checksumArray );
  33.         } else {
  34.             $checksum = md5_file( $file );
  35.             if ( ! isset( $checksumArray[$checksum] ) ) {
  36.                 $checksumArray[$checksum] = 1;
  37.             }
  38.         }
  39.     }
  40. }
  41.  
  42. $checksumArray = array();
  43. loadChecksums( '/mappa/ahova/masolja/a/fajlokat', $checksumArray );
  44. copyIfUnique( strlen( '/mappa/utvonala/ahol/vannak' ), '/mappa/utvonala/ahol/vannak', '/mappa/ahova/masolja/a/fajlokat', $checksumArray );
  45.  
  46. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement