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
<?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 ) === false )
{
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 ) === true && $overwrite === true )
{
unlink( $new_file );
}
elseif( file_exists( $new_file ) === true && $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 );
?>
<?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 function copy_file( $file , $new_file , $overwrite = true ) { { return false; } //originele file bestaat $fp = fopen( $file , 'r' ); //lees de inhoud van het bestand in een variable en sluit het bestand //eerst gaan we controleren of die nieuwe file al dan niet bestaat //$overwrite = true ? dan verwijderen we die gewoon if( file_exists( $new_file ) === true && $overwrite === true ) { } elseif( file_exists( $new_file ) === true && $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 . '.'; } } copy_file( $file, $new_file, false ); } //we gaan nu het nieuwe bestand aanmaken $fp = fopen( $new_file , 'w' ); //kopieren de data en sluiten het return true; } ################## # VOORBEELD #02 # ################## copy_file( './string.php' , './testjes/test/test/string.php' , false ); ?>
|
|
|
Stijn
|
Omdat de functie soms vervelend doet in Windows (over toegang e.d.) heb ik een variantie gemaakt.
<?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>
* @version Versie 1.0
* @package PHP
*/
// full error reporting
error_reporting(E_ALL);
function copy_file( $file , $new_file , $overwrite = true )
{
if( file_exists( $file ) === false ) {
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 ) === true && $overwrite === true ) {
unlink( $new_file );
} elseif( file_exists( $new_file ) === true && $overwrite === false ) {
return 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 #01 #
##################
if( copy_file( './wijn/update.sql' , './webprof/update_wijn.sql' , false ) === true ) {
echo "Gekopieerd";
} else {
echo "Er liep iets fout tijdens het kopieren";
}
?>
<?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> * @version Versie 1.0 * @package PHP */ // full error reporting function copy_file( $file , $new_file , $overwrite = true ) { return false; } //originele file bestaat $fp = fopen( $file , 'r' ); //lees de inhoud van het bestand in een variable en sluit het bestand //eerst gaan we controleren of die nieuwe file al dan niet bestaat //$overwrite = true ? dan verwijderen we die gewoon if( file_exists( $new_file ) === true && $overwrite === true ) { } elseif( file_exists( $new_file ) === true && $overwrite === false ) { return false; } //we gaan nu het nieuwe bestand aanmaken $fp = fopen( $new_file , 'w' ); //kopieren de data en sluiten het return true; } ################## # VOORBEELD #01 # ################## if( copy_file( './wijn/update.sql' , './webprof/update_wijn.sql' , false ) === true ) { } else { echo "Er liep iets fout tijdens het kopieren"; } ?>
stijn |
|
|