Gennemløb af folder(e)
Hejsa.Jeg har brug for lidt hjælp her.. til at gennemløbe en folder for filer og foldere.
Har denne tilrettede funktion:
function make_tree($path)
{ //where $path is your source dir.
GLOBAL $alb_id;
if ($a_id == "" ) $a_id = $alb_id;
$handle=opendir($path);
while($a=readdir($handle))
{
if(!preg_match('/^\./',$a))
{
$full_path="$path/$a";
$list[]=$full_path; // REPLACE WITH OPTION IF NEEDED.
if(is_dir($full_path))
{
$recursive=make_tree($full_path);
for($n=0; $n<count($recursive); $n++)
{
if (is_dir($recursive[$n]))
{
$path_parts = pathinfo($recursive[$n]);
$folder_name = $path_parts['basename'];
$a_level = $a_id;
// Insert images into db
// new album?
$sql = "
INSERT INTO g3_albums
(
u_id,
a_level,
a_name
)
VALUES
(
'".$_SESSION[u_id]."',
'".$a_level."',
'".$folder_name."'
)
";
mysql_query($sql) or die ($sql."<br>".mysql_error());
$a_id = mysql_insert_id();
// echo "Dir[".$a_level."]:".$recursive[$n]."<br>";
}
}
for($n=0; $n<count($recursive); $n++)
{
if (is_file($recursive[$n]))
{
$rand = time() - (int) date('Z');
$path_parts = pathinfo($recursive[$n]);
$file_name = $rand."_".$path_parts['basename'];
$real_file_name = $path_parts['basename'];
// Insert images into db
// new album?
$sql = "
INSERT INTO g3_images
(
u_id,
a_id,
i_filename
)
VALUES
(
'".$_SESSION[u_id]."',
'".$a_id."',
'".$file_name."'
)
";
mysql_query($sql) or die ($sql."<br>".mysql_error());
$full_path_file = $full_path."/".$real_file_name;
resize_move_file($real_file_name, $full_path_file, $rand);
// echo "File[".$a_id."]:".$recursive[$n]."<br>";
}
$list[]=$recursive[$n];
} // end for n
} // end if is_dir
} // end if preg_match
} // end while a
closedir($handle);
return $list;
} // end function make_tree
Men den vil ikke som jeg vil.
Jeg kunne godt tænke mig at få lagt en ny folder ind i min db og filer derunder placeret i samme folder - derfor bliver jeg jo nødt til at holde styr på folder id. Desuden vil jeg jo gerne have placeret foldere i "roden" hvis ikke de er foldere i folder. Men det giver lidt probs for mig.
Nogen der kan overskue og hjælpe ?
