Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekształcenie
tramer1991
post 27.10.2007, 12:34:28
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.08.2007

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


W jaki sposób z czegoś takiego (zawartość pliku tekstowego, przedstawiająca rozkład plików w katalogu)
PS: Każdy folder, zanim zostanie podany jakiś plik z niego, zostaje najpierw 'zadeklarowany'

_folder1|To jest nazwa 1 folderu
_folder1/plik1.html|To jest nazwa jakiegoś pliku
_folder1/plik2.html|To jest inny plik
_folder1/podfolder|To jest jakiś podfolder
_folder1/podfolder/plik3.html|To jest plik w podfolderze
_folder2|Drugi folder
_folder2/plik99.html|To jest jakiś plik


Zrobić coś takiego:
Kod
<ul id="menu1" class="tree-menu">
     <li><a href="javascript:void(0)">To jest nazwa 1 folderu</a>
         <ul>
             <li><a href="_folder1/plik1.html">To jest nazwa jakiegoś pliku</a></li>
             <li><a href="_folder1/plik2.html">To jest inny plik</a></li>
             <li><a href="#">To jest[font="Verdana"] jakiś podfolder</a>
                 <ul>
                     <li><a href="_folder1/podfolder/plik3.html">To jest plik w podfolderze</a></li>
                     </ul>
                 </li>
         </ul>
      </li>
     <li><a href="#">Drugi folder</a>
         <ul>
                 <li><a href="_folder2/plik99.html">To jest jakiś plik</a></li>
         </ul>
     </li>
</ul>


Dzięki za jakiekolwiek wsparcie biggrin.gif

Ten post edytował tramer1991 27.10.2007, 12:35:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
kevinsz
post 27.10.2007, 17:41:54
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 2
Dołączył: 26.04.2007

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


No cóż, trochę to zamieszane, ale mam nadzieję, że działa tongue.gif Starałem się wstawić odpowiednio formatowanie, żeby wynik porządnie wyglądał. Zakładam też, że w nazwie katalogu nie będzie kropki.

Kod
<?php
echo '<ul id="menu1" class="tree-menu">'."\n";
$last_level = 0;
$fp = @fopen('test.txt','r');
if ($fp) {
    while (!feof($fp)) {
        $line = fgets($fp, 4096);
        if(trim($line)=='') break;
        $elements  = explode('|',$line);
        $level = substr_count($elements[0],'/');
        $tabs = '';
        for($j=0;$j<=(2*$level);$j++)
            $tabs .= "\t";
        $elements[1]=str_replace("\r\n","",$elements[1]);
        if(strpos($elements[0],'.')){                        //jest plik
            $last_was_folder = FALSE;
            echo $tabs.'<li><a href="'.$elements[0].'">'.$elements[1].'</a></li>'."\n";
        }else{                                                                    //jest katalog
            if($last_level>$level){
                if($last_was_folder)
                    $last_level++;
                for($i=0;$i<($last_level-$level);$i++){
                    $t = '';
                    $t2 = '';
                    for($k=0;$k<(2*$last_level-2*$i);$k++){
                        $t .= "\t";
                        ($k==0) ? $t2 .= '' : $t2 .= "\t";
                    }
                    echo $t.'</ul>'."\n".$t2.'</li>'."\n";
                }
            }else if($last_was_folder){
                for($k=0;$k<(2*$last_level-2*$i);$k++){
                        $t .= "\t";
                        ($k==0) ? $t2 .= '' : $t2 .= "\t";
                    }
                    echo $t.'</ul>'."\n".$t2.'</li>'."\n";
            }
                echo $tabs.'<li><a href="#">'.$elements[1].'</a>'.
                       "\n\t".$tabs.'<ul>'."\n";
          
          $last_was_folder = TRUE;
        }
        $last_level = $level;
    }
    fclose($fp);
    if($last_level==0)
        echo "\t\t".'</ul>'."\n\t".'</li>'."\n";
       for($i=0;$i<($last_level);$i++){
            $t = '';
            $t2 = '';
            for($k=0;$k<(2*$last_level-2*$i);$k++){
                $t .= "\t";
                ($k==0) ? $t2 .= '' : $t2 .= "\t";
            }
            echo $t.'</ul>'."\n".$t2.'</li>'."\n";
        }
}
echo '</ul>';
?>
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 00:58