Avatar billede bigo Nybegynder
20. maj 2006 - 20:47 Der er 1 løsning

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 ?
Avatar billede bigo Nybegynder
10. august 2006 - 08:25 #1
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Paychex Europe

Scrum Master

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen