Tengo varias webs con la misma estructura y queria actualizar en todas ellas las imagenes.
Primero hago una llamada a la base de datos la cual estrae el nombre de la carpeta de cada web, y en cada bucle, con el codigo de abajo copia de un directorio llamado "archivos" todos los archivos y subdirectorios a cada directorio "imagenes" que tiene cada web.
Bien, el problema es que este código me da el siguiente error y no encuentro la solucion:
Cita:
Fatal error: Cannot redeclare dircpy() (previously declared in /home/.humperdink/webs/midominio.com/web1/admin/copiador.php:19) in /home/.humperdink/webs/midominio.com/web1/admin/copiador.php on line 19
Si alguien encontrara de que se trata este error y su posible solucion se lo agradeceria y asi aprendemos todos.
Muchas gracias!
Código PHP:
<?php
$connection = mysql_connect('XX', 'XX', 'XX') or die('No pudo conectarse : ' . mysql_error());
$db = mysql_select_db('bd1',$connection) or die('No pudo seleccionarse la BD.');
$query = mysql_query("SELECT * FROM registros where nombreweb is NULL limit 1");
while ($row=mysql_fetch_array($query,MYSQL_ASSOC)) {
$basePath "./";
$source = "./archivos";
$dest = "../".$web."/imagenes";
// copy a directory and all subdirectories and files (recursive)
// void dircpy( str 'source directory', str 'destination directory' [, bool 'overwrite existing files'] )
function dircpy($basePath, $source, $dest, $overwrite = false){
if(!is_dir($basePath . $dest)) //Lets just make sure our new folder is already created. Alright so its not efficient to check each time... bite me
mkdir($basePath . $dest);
if($handle = opendir($basePath . $source)){ // if the folder exploration is sucsessful, continue
while(false !== ($file = readdir($handle))){ // as long as storing the next file to $file is successful, continue
if($file != '.' && $file != '..'){
$path = $source . '/' . $file;
if(is_file($basePath . $path)){
if(!is_file($basePath . $dest . '/' . $file) || $overwrite)
if(!@copy($basePath . $path, $basePath . $dest . '/' . $file)){
echo '<font color="red">File ('.$path.') could not be copied, likely a permissions problem.</font>';
}
} elseif(is_dir($basePath . $path)){
if(!is_dir($basePath . $dest . '/' . $file))
mkdir($basePath . $dest . '/' . $file); // make subdirectory before subdirectory is copied
dircpy($basePath, $path, $dest . '/' . $file, $overwrite); //recurse!
}
}
}
closedir($handle);
}
}
}
?>