hasp: split von dateinamen+pfad

Hallo Ihr,

ich hab' ein kleines Problem:

$pfadname = "\test\mail\xyz.txt\n"
print $pfadname;

=> \test\mail\xyz.txt

Nun wuerde ich gerne $pfadname mit split an den \ trennen, so dass ich auf die einzelnen Pfade "getrennt" zugreifen kann.

Vielleicht stell ich mich auch nur an, aber ich kriegs nicht hin ...

Danke

  1. Hallo Ihr,

    ich hab' ein kleines Problem:

    $pfadname = "\test\mail\xyz.txt\n"
    print $pfadname;

    => \test\mail\xyz.txt

    @arr = split(/\/,$pfadname);
    print "@arr\n";

    vorsicht, in $arr[0] steht nix drin!

    gruss
    horst

    1. Hallo Ihr,

      ich hab' ein kleines Problem:

      $pfadname = "\test\mail\xyz.txt\n"

      das geht übrigens auch so:

      $pfadname = '\test\mail\xyz.txt';
      das \n brauchst du ja eh nur für die Ausgabe:
      print $pfadname."\n";

      viele grüße

      horst

      1. Hallo,

        günstige Gelegenheit, noch eine kleine Frage dranzuhängen:

        mit $dateiname = basename($qualifizierterName); bekommt man den Dateinamen.
        mit $directory = dirname($qualifizierterName); bekommt man den Verzeichnisteil des gesamten Ausdruckes.

        Gibt es eine fertige Funktion, um die "Extension" abzutrennen? Die konnte ich nicht entdecken. Oder habe ich das mal wieder übersehen?

        Grüße

        Tom

        1. Mahlzeit,

          günstige Gelegenheit, noch eine kleine Frage dranzuhängen:

          mit $dateiname = basename($qualifizierterName); bekommt man den Dateinamen.
          mit $directory = dirname($qualifizierterName); bekommt man den Verzeichnisteil des gesamten Ausdruckes.

          Gibt es eine fertige Funktion, um die "Extension" abzutrennen? Die konnte ich nicht entdecken. Oder habe ich das mal wieder übersehen?

          Ich würde denken, dass es die Funktion nicht gibt, weil es nicht unbedingt immer eine Extension gibt. Hat man eine, wird man diese kennen und kann dementsprechen verfahren.

          Fabian

          1. Hallo!

            Alle zeichen von rechts bis zum ersten Punkt(von rechts!!!) gelten als extension

            Num kannst du dir deine Eigene Funktion zusammenbosseln

            1. hi

              Alle zeichen von rechts bis zum ersten Punkt(von rechts!!!) gelten als extension

              und? in Linux muss ein Dateiname (oder ein Zeiger darauf) _keinen_ Punkt enthalten.

              Num kannst du dir deine Eigene Funktion zusammenbosseln

              ja, sicher kein Problem.

              Fabian

              1. Hi Fabi,

                Alle zeichen von rechts bis zum ersten Punkt(von rechts!!!) gelten als extension

                und? in Linux muss ein Dateiname (oder ein Zeiger darauf) _keinen_ Punkt enthalten.

                Alles Definitionssache. Es geht hier immer noch um die Zugriffs-Library (User- und Objektverwaltung mit und ohne MySQL). Du erinnerst Dich? Ich habe heute Nacht und heute Morgen (als Du noch im bett lagst *gg*) die Funktionen für Bild- und Dateiauslieferung (pdf z.B.) (fast) fertig gemacht. Diese Kleinigkeiten fehlen mir noch dabei. Aber es funktioniert schon gut. Auch der Browser-Cache wird respektiert.

                Was passiert denn eigentlich, wenn man dem auszuliefernden Bild einen falschen content-type header vorausschickt, also einen gif-header für jpg? Und welche header müsste man die andeen Dateitypen  vorausschicken?

                txt
                pdf
                doc
                dot
                xls
                zip

                und was sonst noch so wichtig[tm] ist.

                Mach mich jetzt an die Definition des Zugriffssystems, grob Vorbild der NDS von Novell. Da hätten dann User Rechte auf Objekte und auf User und deren Rechte und Objekte hätten Rechte auf Objekte und auf User und deren Rechte. Wenn einScript autorisiert ist, dürfte es dann einem andeen Script Rechte erteilen oder entziehen.
                Muss nochmal drüber schlafen, denke ich.

                Grüße

                Tom

            2. Hallo!

              Alle zeichen von rechts bis zum ersten Punkt(von rechts!!!) gelten als extension

              Num kannst du dir deine Eigene Funktion zusammenbosseln

              Werde ich wohl müssen.
              Ist immer sichergestellt, dass basename($FullPath) keinen Slash und keine Daten mehrhinten dran hat?

              Ich habe mir das so vorgestellt:
              Schauen, ob überhaupt ein Punkt drin ist. Wenn nicht, dann return "";
              Dann mit $nameparts = explode(".",$dateiname) zerlegen.
              Dann mit return array_pop($nameparts) die Funktion beenden.

              Geht das so, oder ist es ungeschickt? Die Funktion sollte schon zeitoptimiert sein, da sie später oft eingesetzt wird.

              Bei der Gelegenheit nochmal gefragt:
              Kann man bei PHP dafür sorgen, dass eine Library (include-Datei) die oft benötigt wird, gleich im Speicher verbleibt, so das mit Stored Procedures geht?

              Grüße aus http://www.braunschweig.de

              Tom

              1. Hi Tom,

                Bei der Gelegenheit nochmal gefragt:
                Kann man bei PHP dafür sorgen, dass eine Library (include-Datei) die oft benötigt wird, gleich im Speicher verbleibt, so das mit Stored Procedures geht?

                AFAIK nicht, dann müsstest du sie schon kompilieren und als *.dll (oder unter Linux als Modul) in der php.ini "anmelden", sodass sie zur Verfügung steht. Wie das genau geht solltest du aber googlen, das hab ich auch noch nicht ausprobiert. (Warum auch?)

                Fabian

    2. Hallo Ihr,

      ich hab' ein kleines Problem:

      $pfadname = "\test\mail\xyz.txt\n"
      print $pfadname;

      => \test\mail\xyz.txt

      @arr = split(/\/,$pfadname);
      print "@arr\n";

      vorsicht, in $arr[0] steht nix drin!

      gruss
      horst

      DANKE ... auf'm Schlauch muss man stehen ...
      dass in $arr[0] nix drin steht is klar ...

      hasp