Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SERVER_NAME wieder abschneiden

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

  • [Erledigt] SERVER_NAME wieder abschneiden

    habe hier ein Problem mit einem Zielordner der 5 Ebenen höher liegt, deshalb verwende ich SERVER_NAME um diesen Ordner zu finden.
    Das Problem ist nun das ich hierbei nach foreach für $filename den Dateinamen brauche ohne SERVER_NAME - kann ich das wieder rausfiltern oder gibt es eine bessere Möglichkeit auf das Verzeichnis zu verweisen?

    PHP-Code:
    $doc $_SERVER["SERVER_NAME"]."/";
    $myString $doc."images/$cla1*.*";

    echo 
    $myString;

          if(
    glob($myString) == TRUE){ 
                foreach (
    glob($myString) as $filename) { 


  • #2
    Hi,

    wenn du auf Dateisystembasis arbeitest kannst du SERVER_NAME ja nicht verwenden, ich gehe also davon aus, dass du auf http Ebene arbeiten willst.
    Dann kannst du doch einfach von / ausgehen ?!?

    Kommentar


    • #3
      Substring ohne (Position von SERVERNAME im String) bis (Position von SERVERNAME im STRING + Länge SERVERNAME).

      Kommentar


      • #4
        daran hab ich gedacht, ich bekomme aber den substr nicht richtig zusammen
        PHP-Code:
              if(glob($myString) == TRUE){ 
                    foreach (
        glob($myString) as $filename2) {
                        
        $filename substr($filename2$doc); 

        Zitat von cetalian Beitrag anzeigen
        Substring ohne (Position von SERVERNAME im String) bis (Position von SERVERNAME im STRING + Länge SERVERNAME).

        Kommentar


        • #5
          Zitat von fulltilt Beitrag anzeigen
          Das Problem ist nun das ich hierbei nach foreach für $filename den Dateinamen brauche ohne SERVER_NAME
          Mach's dir einfacher, benutze bspw. scandir statt glob - das liefert nur Dateinamen, ohne das Verzeichnis davor.


          PHP-Code:
                if(glob($myString) == TRUE){ 
                      foreach (
          glob($myString) as $filename) { 
          Das ist ganz böse! Hier muss glob in jedem Schleifendurchlauf erneut aufgerufen werden.

          Lege dir in solchen Fällen (Funktionen, die ein Array zurückliefern) die Rückgabe vorher in einer Variablen ab, und durchlaufe dann mit foreach diese.

          Kommentar


          • #6
            Danke Euch


            Zitat von ChrisB Beitrag anzeigen
            Mach's dir einfacher, benutze bspw. scandir statt glob - das liefert nur Dateinamen, ohne das Verzeichnis davor.



            Das ist ganz böse! Hier muss glob in jedem Schleifendurchlauf erneut aufgerufen werden.

            Lege dir in solchen Fällen (Funktionen, die ein Array zurückliefern) die Rückgabe vorher in einer Variablen ab, und durchlaufe dann mit foreach diese.

            Kommentar


            • #7
              Das ist ganz böse! Hier muss glob in jedem Schleifendurchlauf erneut aufgerufen werden.
              Dem würde ich widersprechen wollen. Laut Manual legt foreach vor dem Durchlauf eine Kopie des verwendeten Arrays an (man kann also in der Schleife das Array problemlos abändern). Was IMHO darauf hindeutet, dass der Schleifenausdruck (ist ja keine Bedingung) nur initial einmal ausgeführt wird.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                OK, stimmt in diesem Falle.

                Bei anderen Fällen oder in anderen Sprachen kann das aber anders aussehen; deshalb gehe ich an solchen Stellen lieber auf Nummer Sicher.

                Kommentar

                Lädt...
                X