login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Snippets > Copy functie voor windows en *NIX

Copy functie voor windows en *NIX

Auteur: stijn1989 + siliecom14 - 15 maart 2007 - 18:16 - Gekeurd door: Stijn - Hits: 2795 - Aantal punten: 3.00 (3 stemmen)




Dit script hebben ik en stijn gemaakt (stijn heeft de functie gemaakt, en ik de uitbreiding)

Quote stijn:

Omdat de functie soms vervelend doet in Windows (over toegang e.d.) heb ik een variantie gemaakt.

Quote ik:

Stijn, je hebt uitstekend een alternatief gemaakt Alleen vond ik wel dat als men een bestaand file niet wilt overschrijven, dat er dan een kopie moet komen, net zoals windows. bestand.extentie word dan bestand(2).extentie. bestand(2).extentie word dan bestand(2)(3).extentie

Code:
  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3. /**
  4.  * index file
  5.  *
  6.  * @license http://www.gnu.org/licenses/gpl.html
  7.  * @author Stijn Leenknegt <stijnleenknegt@gmail.com>
  8.  * @modified_by Ibrahim Abdullah <pm_me@sitemasters.be>
  9.  * @version Versie 1.1
  10.  * @package PHP
  11.  */
  12.  
  13. // full error reporting
  14.  
  15. function copy_file( $file , $new_file , $overwrite = true )
  16. {
  17.  
  18. if( !file_exists( $file ) )
  19. {
  20. return false;
  21. }
  22.  
  23. //originele file bestaat
  24. $fp = fopen( $file , 'r' );
  25.  
  26. //lees de inhoud van het bestand in een variable en sluit het bestand
  27. $content = fread( $fp , filesize($file) );
  28. fclose( $fp );
  29.  
  30. //eerst gaan we controleren of die nieuwe file al dan niet bestaat
  31. //$overwrite = true ? dan verwijderen we die gewoon
  32. if( file_exists( $new_file ) && $overwrite === true )
  33. {
  34. unlink( $new_file );
  35. }
  36.  
  37. elseif( file_exists( $new_file ) && $overwrite === false )
  38. {
  39. // niet overwriten, dus ff bestand renamen (net als windows)
  40. $explode = explode('.', $new_file );
  41.  
  42. $new_file = '';
  43. foreach( $explode as $key => $value )
  44. {
  45. if( $key == (count( $explode ) - 2) )
  46. {
  47. if(preg_match('~\((\d)\)$~', $explode[$key], $results))
  48. {
  49. $new_file .= $value . '('. ($results[1] + 1) .').';
  50. }
  51. else
  52. {
  53. $new_file .= $value . '(2).';
  54. }
  55. }
  56. else
  57. {
  58. if( $key == (count( $explode ) - 1) )
  59. $new_file .= $value;
  60. else
  61. $new_file .= $value . '.';
  62. }
  63. }
  64.  
  65. if( file_exists( $new_file ) )
  66. copy_file( $file, $new_file, false );
  67. }
  68.  
  69. //we gaan nu het nieuwe bestand aanmaken
  70. $fp = fopen( $new_file , 'w' );
  71.  
  72. //kopieren de data en sluiten het
  73. fwrite( $fp , $content );
  74. fclose( $fp );
  75.  
  76. return true;
  77.  
  78. }
  79.  
  80.  
  81. ##################
  82. # VOORBEELD #02 #
  83. ##################
  84. copy_file( './string.php' , './testjes/test/test/string.php' , false );
  85. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (10)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.024s