Problema e urmatoarea: sub LINUX acest script nu imi creeaza directorul cu drepturile specificate de mine. In urma executiei scriptului trebuia ca stuctura arborescenta sa aiba drepturile '744' (full proprietar si citire restul publicului), inclusiv fisierele din aceastra structura arborescenta. Dar sub Linux acest script genereaza un director cu drepturile: rwxr--r-T iar fisierele au drept rwxr--r-- !!! . Sau 755 am nevoie dar nu mi-l face asa. T-ala trebuie neaparat sa dispara din maska de drepturi . Scriptul este urmatorul:
<?
function direcho($path)
{
if ($dir = opendir($path)) //deschide calea
{
while (false !== ($file = readdir($dir))) //citeste un item din director
{
if (is_dir($path."/".$file)) // daca e un director atunci verific si continutul lui (subdirectoare, fisiere)
{
if ($file != '.' && $file != '..') // nu iau in calcul directorul curent si cel parinte
{
//schimb maxi_thumb cu nou_thumb si mai jos fac un director cu numele pe care tocmai l-am citit
$poz=strpos($path,'maxi_thumb');
$radacina=substr($path,0+strlen('maxi_thumb'),strlen($path)-strlen('maxi_thumb'));
$radacina="nou_thumb".$radacina;
if (!file_exists($radacina))
{
mkdir($radacina,0744,true); //creez directorul daca nu exista
chmod($radacina,0744); //mai setez o data drepturile (cu sticky bit)
}
direcho($path."/".$file); //apelez recursiv functia
}
}
else //altfel daca e un fisier il afisez
if (eregi("\.jpg",$file))
{
$poz = strpos($path,'maxi_thumb');
$radacina = substr($path,0+strlen('maxi_thumb'),strlen($path)-strlen('maxi_thumb'));
$radacina = "mini_thumb".$radacina;
$fisier_destinatie = $radacina."/".$file;
$fisier_sursa = $path."/".$file;
/*
echo "path primit : $path | ";
echo "poz $poz | ";
echo "Dir. curent $file | Radacina: $radacina | ";
echo "Sursa: $fisier_sursa | Destinatia $fisier_destinatie<br>";
*/
//daca nu exista fisierul destinatie sau daca e mai veche decat sursa atunci prelucrez imaginea
if (!file_exists($fisier_destinatie) or (filemtime($fisier_destinatie) < filemtime($fisier_sursa)))
{
//creez directorul doar 1 singura data
if (!file_exists($radacina))
{
mkdir($radacina,0755,true); //creez directorul daca nu exista
chmod($radacina,0755);
}
}
}
}
closedir($dir);
}
}
direcho('maxi_thumb'); //directorul sursa din care se vor prelua fisierele
?>
Exemplu (prima linie ce am nevoie sa genereze, linia 2 ce genereaza):
rwxr--r--
rwxr--r-T
mkdir + chmod + Linux
Moderatori: Zamolxe, Moderatori
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 17 vizitatori