Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SERVER_NAME wieder abschneiden

Einklappen

Neue Werbung 2019

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

  • fulltilt
    hat ein Thema erstellt [Erledigt] SERVER_NAME wieder abschneiden.

    [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) { 

  • ChrisB
    antwortet
    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.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    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.

    Einen Kommentar schreiben:


  • fulltilt
    antwortet
    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.

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    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.

    Einen Kommentar schreiben:


  • fulltilt
    antwortet
    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).

    Einen Kommentar schreiben:


  • Papst
    antwortet
    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 ?!?

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:

Lädt...
X