function dircopy($source, $dest)
{
if (is_file($source)) {
return copy($source, $dest);
}
if (!is_dir($dest)) {
mkdir($dest);
}
$dir = dir($source);
while (false !== $entry = $dir->read()) {
if ($entry == '.' || $entry == '..') {
continue;
}
if ($dest !== "$source/$entry") {
dircopy("$source/$entry", "$dest/$entry");
$perms = substr(sprintf('%o', fileperms("$source/$entry")), -4);
chmod ("$dest/$entry", $perms);
}
}
$dir->close();
return true;
}
Dakle, to treba da kopira ceo direktorijum (i njegove poddirektorijume) na drugo mesto na disku s tim što će na destination fajlove staviti isti mod kao što je na source fajlovima. Međutim, to ne funkcioniše - kopira on sve, ali fajlovi dobiju mode 0411 umesto 0777. Negde sam pročitao da je to zato što user pod kojim se pokreće Apache nema privilegiju da menja permissions od drugih fajlova, a mislim da mu ni ne bi bilo pametno dati tu mogućnost (gledano iz sigurnosnog ugla).
Da li postoji neki drugi način da se ovo odradi iz PHP-a?
EDIT: ftp_chmod ne može zato što nemam FTP usera koji bi to mogao odraditi.
nama je lepo, taman kako smo zaslužili!