
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
 * index file
 *
 * @license      http://www.gnu.org/licenses/gpl.html
 * @author       Stijn Leenknegt <stijnleenknegt@gmail.com>
 * @modified_by  Ibrahim Abdullah <pm_me@sitemasters.be>
 * @version      Versie 1.1
 * @package      PHP
 */
 
// full error reporting
error_reporting(E_ALL);

function copy_file( $file , $new_file , $overwrite = true )
{

  if( !file_exists( $file )  ) 
  {
      return false;
    }
  
    //originele file bestaat
  $fp = fopen( $file , 'r' );
  
    //lees de inhoud van het bestand in een variable en sluit het bestand
    $content = fread( $fp , filesize($file) );
    fclose( $fp );

    //eerst gaan we controleren of die nieuwe file al dan niet bestaat
    //$overwrite = true ? dan verwijderen we die gewoon
    if( file_exists( $new_file ) && $overwrite === true ) 
    {
       unlink( $new_file );
    }
   
  elseif( file_exists( $new_file ) && $overwrite === false ) 
  {
      // niet overwriten, dus ff bestand renamen (net als windows)
    $explode = explode('.', $new_file );

    $new_file = '';
    foreach( $explode as $key => $value )
    {
      if( $key == (count( $explode ) - 2) )
      {
        if(preg_match('~\((\d)\)$~', $explode[$key], $results))
        {
          $new_file .= $value . '('. ($results[1] + 1) .').';
        }
        else
        {
          $new_file .= $value . '(2).';
        }
      }
      else
      {
        if( $key == (count( $explode ) - 1) )
          $new_file .= $value;
        else
          $new_file .= $value . '.';
      }
    }
    
    if( file_exists( $new_file ) )
      copy_file( $file, $new_file, false );
    }

  //we gaan nu het nieuwe bestand aanmaken
  $fp = fopen( $new_file , 'w' );
  
  //kopieren de data en sluiten het
  fwrite( $fp , $content );
  fclose( $fp );
  
  return true;

}


##################
# VOORBEELD #02         #
##################
copy_file( './string.php' , './testjes/test/test/string.php' , false );
?>
