Prvni chyba muze byt hned na zacatku. Pro priste pouzij "<?php" misto "<?". Apache je na to od nejake 2.0.x verze haklivy... Jenom je dobre si to zvyknout psat
co se tyce te funkce, tak bych to prepsal aspon takto:
- Kód: Vybrat vše
<?php
function kopirovat($od,$do) {
if(!is_dir($do)){
mkdir ($do,0777);
}
$handle = opendir($od);
$a = 0;
while (($file = readdir($handle)) == true){
if ($file != "." && $file != "..") {
echo $file.'<br />';
$soubor[$a] = $file;
$a++;
}
}
closedir($handle);
echo '------------<br />konec slozky '.$od.'<br />';
$i=0;
$counter=0;
while ($i<$a){
if(!file_exists($do."/".$soubor[$i])){
if(is_dir($od."/".$soubor[$i])){
mkdir ($do."/".$soubor[$i],0777);
kopirovat ($od."/".$soubor[$i],$do."/".$soubor[$i]);
}else{
if(copy($od."/".$soubor[$i],$do."/".$soubor[$i])){
echo 'kopiruji soubor '.$od."/".$soubor[$i].'do slozky '.$do.'<br />';
$counter++;
}else {
echo $od."/".$soubor[$i].' nebyl zkopirovan';
}
}
}
$i++;
}
echo '--------------------<br /> Celkem zkopirovano '.$counter.' souboru<br />';
}
kopirovat ("../temp","./new6");
?>
Prvni dva soubory v kazdem adresari jsou "." a ".. ", ty to ignoruje, pokud je to slozka rekurzivne kopiruje. Pokud cilova slozka, neexistuje, vytvori ji. Pokud existuje cilovy soubor stejneho nazvu nebude to kopirovat. Jeste by to nejak chtelo osetrit to prepisovani souboru a taky chybove hlasky ohledne prav pro zapis atd.