Ankündigung

Einklappen
Keine Ankündigung bisher.

einträge in listmenu aus dateinamen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • einträge in listmenu aus dateinamen

    Hi,
    ich habe auf meinen Server ein verzeichnis, dort liegen dateien welche immer die gleiche dateiendung (.lng) haben. Ich möchte nun in einer html-seite (welche ein verzeichnis höher liegt) die dateien in einen listmenu darstellen. Die Dateiendungen (.lng) sollen zuvor auch noch weg und der erste buchstabe des dateinamen muss immer groß geschrieben sein.

    Schonmal Danke

    Greetz

  • #2
    Lies den Ordner aus, und erzeuge für jeden Eintrag ein <option>-Tag. Dann schneide vorher den Dateinamen ab.

    Code:
    <select size="1" name="nicknamus" id="nicknamus" class="input">
    <option>--User auswählen--</option>
    <?
    $ordner=opendir("members/");
    while(false!=($file=readdir($ordner))){
    if($file!= "." && $file!=".."){ 
    $laenge=$file.length;
    $gekuerzt=$laenge-4;
    $nick=substr($file, 0, $gekuerzt);
    echo"<option>$nick</option>";}}
    closedir($ordner);
    ?>
    </select>
    Hier, hab ich schonmal gemacht...

    Kommentar


    • #3
      Ich habe jezt den Code für mich angepasst.
      PHP-Code:
      <?php
      //list categorys
      $folder opendir("topicstore/");
      while(
      false!=($file=readdir($folder))){
      if(
      $file!= "." && $file!=".."){
      $size $file.length;
      $cat $size-4;
      echo 
      '<tr><td style="cat-headline"><h3>[url="viewcategory.'.$phpex.'?category='.$cat.'"]'.$cat.'[/url]</h3></td></tr>';}}
      closedir($folder);
      ?>
      Aber in der Variable ist dann nur -4 drin. Also echo $cat ergibt -4.

      Was nun?

      Greetz und thx

      Kommentar


      • #4
        $size = $file.length;

        actionsscript is nich meinst du vllt www.php.net/strlen ?

        Kommentar


        • #5
          Nun, du hast das substr() vergessen, aber es geht auch anders:
          PHP-Code:
          $folder opendir("topicstore");
          while(
          $file readdir($folder))
          {
              if(
          $file == '.' && $file == '..') continue;
              
              
          $list($cat$suff) = explode('.'ucfirst($file));
              echo 
          '<tr><td style="cat-headline"><h3><a href="viewcategory.' $phpex .
                   
          '?category=' $cat '">' $cat '</a></h3></td></tr>';
              
          }
          closedir($folder); 
          Gruss
          L

          Kommentar


          • #6
            ich habs jetzt so gemacht:
            PHP-Code:
            <?php
            //list categorys
            $folder opendir("topicstore/");
            while(
            false!=($file=readdir($folder))){
            if(
            $file!= "." && $file!=".."){
            $size strlen($file);
            $cat $size-4;
            echo 
            '<tr><td style="cat-headline"><h3>[url="viewcategory.'.$phpex.'?category='.$cat.'"]'.$cat.'[/url]</h3></td></tr>';}}
            closedir($folder);
            ?>
            Aber des will immernoch nicht funktionieren. Jetzt kommen verschiedene Zahlen raus. Ich will doch nur die letzten 4 Zeichen abschneiden....

            Kommentar


            • #7
              Zitat von lazydog
              Nun, du hast das subsr() vergessen, aber es geht auch anders:
              PHP-Code:
              $folder opendir("topicstore");
              while(
              $file readdir($folder))
              {
                  if(
              $file == '.' && $file == '..') continue;
                  
                  
              $list($cat$suff) = explode('.'ucfirst($file));
                  echo 
              '<tr><td style="cat-headline"><h3><a href="viewcategory.' $phpex .
                       
              '?category=' $cat '">' $cat '</a></h3></td></tr>';
                  
              }
              closedir($folder); 
              Parse error: parse error, unexpected '=' in /home/www/web2/html/internet/QuickyBoard/demo/index.php on line 37
              PHP-Code:
              //Zeile 37:
                  
              $list($cat$suff) = explode('.'ucfirst($file)); 

              Kommentar


              • #8
                mach mal das $ zeichen am anfang weg

                wieso du oben nur zahlen hast, is klar. du berechnest mit strlen($file) die
                länge des dateinamen. da haste dann ne zahl drin stehen. drunter rechnest
                du einfach diese zahl -4, is doch klar, dass dann nur zahlen raus kommen?

                du brauchst die länge des dateinamen von $file, ziehst 4 ab, und nimmst diese
                werte dann für substr().

                Kommentar


                • #9
                  OK, da ist ein "$" zuviel reingerutscht:
                  PHP-Code:
                  list($cat$suff) = explode('.'ucfirst($file)); 
                  Gruss
                  L

                  Kommentar


                  • #10
                    Ok, ich hab jetzt den code von lazydog verwendet. Funktioniert einwandfrei. Danke, aber auch danke an Stef.

                    Greetz

                    Kommentar


                    • #11
                      Und wieso werden mit den Code von lazydog 2 mal Code generiert obwohl keine Dateien in den Ordner sind. Auch wenn welche drin sind passiert das. Es wird folgender Code generiert:
                      Code:
                      <tr><td class="cat-headline"><h3></h3></td></tr><tr><td class="cat-headline"><h3></h3></td></tr>

                      Kommentar


                      • #12
                        gib einfach zur kontrolle mal zwischen if( ... ) und list( .. ) ein echo $file.'
                        ';

                        ein, dann siehste was er für dateinamen hat .. evtl kommt er mit denen nicht
                        zurecht - aus welchen gründen auch immer.

                        Kommentar


                        • #13
                          Daran liegts nicht. Ich habe jetzt 2 Dateien in den Ordner, das ist rausgekommen:
                          Code:
                          <tr><td class="cat-headline"><h3></h3></td></tr><tr><td class="cat-headline"><h3></h3></td></tr><tr><td class="cat-headline"><h3>Hdfsjhdfs</h3></td></tr><tr><td class="cat-headline"><h3>Test</h3></td></tr>

                          Kommentar


                          • #14
                            schön, dass du dir so sicher bist. nur ohne zu wissen wie oft und vor allem
                            womit $file belegt wird, is schwierig so ohne glaskugel zu helfen.

                            Kommentar


                            • #15
                              Der Fehler liegt daran, dass ".." und "." nicht überlesen werden, Und da die Punkte nach dem explode() verschwinden, ist $cat leer. Die Bedingungen müssen natürlich mit or verknüpft werden
                              PHP-Code:
                              if($file == '.' || $file == '..') continue; 
                              , sonst wird die Abfrage nie wahr.
                              Gruss
                              L

                              Kommentar

                              Lädt...
                              X