Variable splitten auf 2 variablen

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

  • Variable splitten auf 2 variablen

    Hallo Community,

    Ich habe ein Script welches mir rekrusiv meine Verzeichnisse ausliesst.
    Nun wird aber der komplette Pfad gesavt (so wie ich ihn auch benötige) Allerdings wollte ich mir für eine optische Verfeinerung
    nur den Dateinamen+Endung ausgeben lassen. Bei mir ist das $FILE nur diese Variable muss ich zuvor an eine andere Variable weitergeben.

    Wie kann ich $file nun so speichern das ich nach Beendigung des Script immernoch $file auslesen kann ?

    Hier im Anhang ein blick auf das Script


    PHP-Code:
    <?php
    #Session starten
        
    session_start();

    #Configs einbinden
        
    REQUIRE ('../../../lib/global/url_vars.inc.php');
        REQUIRE (
    '../../../lib/global/checkuser.php');
        
    DEFINE ('must_be_online',0);
        
    DEFINE ('must_be_active',0);
        REQUIRE (
    root.'lib/global/configure.inc.php');

       function 
    read_recursiv($path
       { 
          
    $result = array();

          
    $handle opendir($path); 

          if (
    $handle
          { 
             while (
    false !== ($file readdir($handle)))     
             { 
                 if (
    $file != "." 
                 
    && $file != ".." 
                 
    && $file != "temp_images" 
                 
    && $file != "js" 
                 
    && $file != "jpg" 
                 
    && $file != "gif" 
                 
    && $file != "png" 
                 
    && $file != "css" 
                 
    && $file != "admin" 
                 
    && $file != "footer" 
                 
    && $file != "left" 
                 
    && $file != "right" 
                 
    && $file != "header" 
                 { 
                
                
    $name $path "/" $file;
                    
                    if (
    is_dir($name))
                    { 
                       
    $ar read_recursiv($name);
                       foreach (
    $ar as $value)
                       {
                          
    $result[] = $value;
                       }
                    } 
                    else 
                    { 
                       
    $result[] = $name;
                    } 
                 } 
             } 
          } 
          
    closedir($handle);
          return 
    $result
       } 
        
    $dir_ $_GET['dir_'];
        
    $data read_recursiv("../../../../handel/work/templates/default/$dir_"); 
       

        
    $counter count($data);
        
    $value $data;
        
    sort($value);
        echo  
    $file//Testausgabe

        
    #Smarty Validierung    
        
    $title=$conf['cms_name']."Admin";
        
    $nowtext="Start";
        
        INCLUDE (
    LOADTEMPLATE);
        
    $tpl->assign('value',$value);
        
    $tpl->assign('name',$name);
        
    $tpl->assign('counter',$counter);
        
    $tpl->display(template_dir.'bin/admin/file_editor/templates.tpl');
    ?>
    Danke schonmal für Tipps, Tricks & Hilfestellung

    Gruß Thomas

  • #2
    Du müsstest $file in der Funktion als Global definieren, oder mit return zurückgeben.

    Aber da das ganze rekursiv ist, bekommst du doch immer wieder neue $file-Variablen, bzw. wird diese immer wieder überschrieben. Dann macht deine Frage keinen Sinn mehr.

    Vielleicht formulierst du noch mal neu, da ich davon ausgehe, dass das nicht dein gewünschtes Ergebnis ist.

    Kommentar


    • #3
      ich glaube er sucht eher sowas
      PHP-Code:
      foreach($value as $entry) {
       
      $ex explode("/"$entry);
       echo 
      $ex[sizeof($ex)-1]."<br />";

      gibt nur Dateiname + Endung aus

      Kommentar


      • #4
        Ah, du meinst basename?

        Kommentar


        • #5
          Ausserhalb der Schleife ist logischerweise $file nicht Aufrufbar.
          Meine Ausgabe $value schaut derzeit so aus:

          ../../../handel/work/templates/xxx/xxx/xxx/index.tpl

          Diese Ausgabe benötige ich so um on the fly TPL Datein zu editieren.

          Nun möchte ich gern mit CSS Buttons erstellen.

          Der Button hat den link $value zum öffnen.
          (Verzeichnispfad+Dateiname)

          Der Name des Files $file (bla.tpl) soll auf dem Button lesbar sein.
          Ich möchte den reinen (Dateinamen.Endung) zur Verfügung haben.


          Ich glaube ich rede zuviel oder tue mich unnötig schwer !

          Kommentar


          • #6
            kannst dir doch jetzt eine von beiden Lösungen aussuchen, wobei die von TobiaZ natürlich eleganter ist

            Kommentar


            • #7
              OffTopic:
              Wenn du so programmierst, wie du deine Probleme erfasst, dann hätte ich als Gebäudereiniger angst vor deinem Shop!

              Ich glaube ich rede zuviel
              Erfasst! Das nächste mal Ist- und Soll-Zustand posten, eigene Ansätze dazu packen und schon brauchen wir nur noch halb so viel raten...

              Falls wenigstens krel dich verstanden hat, dann haben wir dein Problem trotzdem lösen können.

              Kommentar


              • #8
                wurde doch schon oben gezeigt. aber hier nochmal:
                PHP-Code:
                $value '../../../handel/work/templates/xxx/xxx/xxx/index.tpl';
                $beschrift explode ('/'$value);
                echo 
                $beschrift[(count($beschrift) - 1)]; 
                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  PHP-Code:
                  echo basename($value); 

                  Kommentar


                  • #10
                    PHP-Code:
                    echo basename($value); 
                    Gibt folgenden Fehler aus :
                    basename() expects parameter 1 to be string, array given in /WWWROOT/116056/htdocs/handel/bin/admin/file_editor/templates.php on line 65



                    Wenn ich nun
                    PHP-Code:
                    $file basename($value[0]); 
                    Dann klappt es allerdings überschreibt er nun die Variable immerwieder so das alle Datein wie [0] heissen.

                    Aber im Ansatz scheint es zu klappen ich tüfftel mal weiter wenn garnicht klappt melde ich mich wieder.

                    Gruß Thomas und danke

                    Kommentar


                    • #11
                      PHP-Code:
                      echo basename($value); 
                      Gibt folgenden Fehler aus :
                      basename() expects parameter 1 to be string, array given in /WWWROOT/116056/htdocs/handel/bin/admin/file_editor/templates.php on line 65



                      Wenn ich nun
                      PHP-Code:
                      $file basename($value[0]); 
                      Dann klappt es allerdings überschreibt er nun die Variable immerwieder so das alle Datein wie [0] heissen.

                      Aber im Ansatz scheint es zu klappen ich tüfftel mal weiter wenn garnicht klappt melde ich mich wieder.

                      Gruß Thomas und danke

                      Kommentar


                      • #12
                        wie wärs denn mit ner Forschleife

                        Kommentar


                        • #13
                          Hi nochmal ich habe das nun so geschrieben aber bekomme immernur eine Fehlerausgabe.

                          PHP-Code:
                          67: foreach($value as $file) {
                          68$file basename($value);
                          69: } 
                          Fehlerausgabe erscheint so oft wie es Files im Verzeichnis gibt :
                          Warning: basename() expects parameter 1 to be string, array given in /WWWROOT/116056/htdocs/handel/bin/admin/file_editor/templates.php on line 68
                          Zuletzt geändert von escape; 28.01.2008, 21:02.

                          Kommentar


                          • #14
                            und wo bitte hast du den code eingebaut? die fehlermeldung ist eigentlich klar. du übergibst keinen string, sondern ein array. mal testausgaben gemacht?

                            gruß
                            peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              So gebe ich es aus

                              PHP-Code:

                              {foreach from=$value item=value}
                              <
                              a style="font-size:10px; color:blue;" href="read.php?file={$value}">{$file}</a>
                              <
                              br>
                              {/foreach} 
                              Zuletzt geändert von escape; 28.01.2008, 21:10.

                              Kommentar

                              Lädt...
                              X