Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Scieżki plików do tablicy
dante90
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


Witam,
pobieram listę ścieżek plików z katalogu, i teraz chcę ją dać do tablicy przykładowo mam
Kod
    .\my\media\gg\hura2.gif
    .\my\media\gg\luzik.gif
    .\my\media\gg\rotfl.gif
    .\my\media\gg\usmiech.gif
    .\my\media\Next.gif
    .\my\css\main.css
    ...


i teraz chcę to przeobrazić do postaci
Kod
  Array
  (
      [my] => Array
        (
            [media] => Array
                (
                    [gg] => Array
                        (
                            [0] => hura2.gif
                            [1] => luzik.gif
                            [2] => usmiech.gif
                            [3] => Next.gif
                        )

                    [0] => Next.gif
                )

        )

    [css] => Array
        (
            [0] => main.css
        )}


a tu scrypcik
  1. $objDir = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( './' ) );
  2. $tablica = array();
  3. foreach( $objDir as $objFile ){
  4. $tmpTab = explode('\\',$objFile);
  5. $count = 1;
  6. while (isset($tmpTab[$count])) {
  7. dodajGalaz($drzewo,$galaz);
  8. //myślałem o funkcji do której przypisujemy poklei gałęzie aż do ostatniego pliku,
  9. //lecz napotkałem się na tzw ścianę, i nic nie mogę wymyślić
  10. $i++;
  11. }
  12. echo $objFile . '<br>'; //wyświetlanie listy
  13. }


Ten post edytował dante90 20.08.2009, 22:22:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




@Darti. Nie powinno się używać eval. Należy użyć referencje.

  1. $kat = array('.\my\media\gg\hura2.gif',
  2. '.\my\media\gg\luzik.gif',
  3. '.\my\media\gg\rotfl.gif',
  4. '.\my\media\gg\usmiech.gif',
  5. '.\my\media\Next.gif',
  6. '.\my\css\main.css');
  7.  
  8.  
  9. function toTreeArray(array $arr)
  10. {
  11. $tmpArr=array();
  12.  
  13. foreach($arr as $el)
  14. {
  15. $tElements=explode('\\', $el);
  16. if(isset($tElements[0]) && $tElements[0]=='.') array_shift($tElements);
  17.  
  18. $elementsCount = count($tElements);
  19. $tReference = &$tmpArr;
  20.  
  21. for($i=0; $i<$elementsCount; $i++)
  22. {
  23. if( $i<($elementsCount - 1) )
  24. {
  25. if(!isset($tReference[$tElements[$i]])) $tReference[$tElements[$i]]=array();
  26. $tReference=&$tReference[$tElements[$i]];
  27. }
  28. else
  29. {
  30. // ostatni element musi byc wartoscia a nie kluczem
  31. $tReference[]=$tElements[$i];
  32. }
  33. }
  34. }
  35.  
  36. return $tmpArr;
  37. }
  38.  
  39. print_r(toTreeArray($kat));
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 10:06