mkdir + chmod + Linux

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

mpotoc
New Member
Mesaje: 3
Membru din: Mar Iun 12, 2007 10:50 pm

mkdir + chmod + Linux

Mesajde mpotoc » Dum Iun 24, 2007 11:42 pm

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



xcristi
Junior Member
Mesaje: 31
Membru din: Vin Mai 04, 2007 8:47 am

Mesajde xcristi » Joi Iun 28, 2007 3:37 pm



Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 16 vizitatori