login  Naam:   Wachtwoord: 
Registreer je!
 Overzicht:
Overzicht > PHP > Bestandssysteem > copy()

Gebruik:
copy(str bron_bestand, str bron_kopie);

Uitleg:
Deze functie maakt een kopie van een bestand bron_bestand naar bron_kopie. Als het bestandsnaam al bestaat wordt het overschreven.

Als oplossing kan je eens controleren of het bestand al bestaat door gebruik te maken van de functie file_exists().


Voorbeeld:
<?php
$bestandsnaam 
"index.php";

if (
file_exists($bestands_naam)) {
   
copy ($bestandsnaam"home.php");
}
?>

Bijdragen :
Ibrahim
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

Voor bugs kun je mij of stijn pmen 

  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 ) === false )
  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 ) === true && $overwrite === true )
  33. {
  34. unlink( $new_file );
  35. }
  36.  
  37. elseif( file_exists( $new_file ) === true && $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. ?>
Stijn
Omdat de functie soms vervelend doet in Windows (over toegang e.d.) heb ik een variantie gemaakt.

  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.  * @version Versie 1.0
  9.  * @package PHP
  10.  */
  11.  
  12. // full error reporting
  13.  
  14. function copy_file( $file , $new_file , $overwrite = true )
  15. {
  16.  
  17. if( file_exists( $file ) === false ) {
  18. return false;
  19. }
  20.  
  21. //originele file bestaat
  22. $fp = fopen( $file , 'r' );
  23.  
  24. //lees de inhoud van het bestand in een variable en sluit het bestand
  25. $content = fread( $fp , filesize($file) );
  26. fclose( $fp );
  27.  
  28. //eerst gaan we controleren of die nieuwe file al dan niet bestaat
  29. //$overwrite = true ? dan verwijderen we die gewoon
  30. if( file_exists( $new_file ) === true && $overwrite === true ) {
  31. unlink( $new_file );
  32. } elseif( file_exists( $new_file ) === true && $overwrite === false ) {
  33. return false;
  34. }
  35.  
  36. //we gaan nu het nieuwe bestand aanmaken
  37. $fp = fopen( $new_file , 'w' );
  38.  
  39. //kopieren de data en sluiten het
  40. fwrite( $fp , $content );
  41. fclose( $fp );
  42.  
  43. return true;
  44.  
  45.  
  46. }
  47.  
  48.  
  49. ##################
  50. # VOORBEELD #01 #
  51. ##################
  52. if( copy_file( './wijn/update.sql' , './webprof/update_wijn.sql' , false ) === true ) {
  53. echo "Gekopieerd";
  54. } else {
  55. echo "Er liep iets fout tijdens het kopieren";
  56. }
  57. ?>


stijn


 Overzicht
chmod()
copy()
fclose()
filemtime()
filesize()
file_exists()
file_get_contents()
file_put_contents()
fopen()
fread()
fwrite()
is_dir()
is_file()
is_readable()
is_writable()
move_uploaded_file()
rename()
unlink()



© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.031s