Explode mit regulären Ausdrücken?

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

  • Explode mit regulären Ausdrücken?

    Hi!

    Ich habe eine Datei (eMail), in der mehrere Abschnitte vorkommen...

    Die Abschnitte sind durch einen Boundary z.B.:
    ----=_NextPart_000_000E_01C46F2D.04A7E520

    getrennt.

    Leider ändert sich der Boundary im Laufe der eMail und ich kann Ihn daher nicht mehr komplett für den explode nutzen, was mir aber sehr helfen würde.

    Im nächsten Abschnitt sieht der Boundary dann nämlich vielleicht so aus:
    ----=_NextPart_001_000E_01C46F2D.04A7E520

    Im Grunde gleich bleibt nur ----=_NextPart_ und _01C46F2D.04A7E520

    Ich müsste also nach ----=_NextPart_[egal was hier steht]_01C46F2D.04A7E520 exploden...

    Geht das und wenn ja, wie mache ich das?

    Gruß,
    Gerti

  • #2
    preg_match_all() sollte dein freund sein!
    mfg

    Kommentar


    • #3
      Hi!

      Mmmh, so ganz steige ich da noch nicht hinter...

      Wie müsste denn der Aufruf aussehen, wenn ich folgende Datei Splitten möchte?

      ----=_NextPart_000_000E_01C46F2D.04A7E520
      Das hier ist Teil 1
      ----=_NextPart_000_001E_01C46F2D.04A7E520
      Das hier ist Teil 2
      ----=_NextPart_001_000E_01C46F2D.04A7E520
      Das hier ist Teil 3

      ...ich müsste am Ende mit einem "While count(Abschnitte)" auf jeden einzelnen Teil zugreifen können, da ich vorher nicht weiß, wieviele Teile ich denn überhaupt habe...

      Gruß,
      Gerti

      Kommentar


      • #4
        Code:
         /_NextPart_[\w\d.]+\r\n(.*)----/imsU
        ich würd dich ja noch auf mein spielzeug hinweisen, ... da das aber atm weder preg_match_all beherrscht, noch bugfrei ist , laß ichs mal lieber.

        schau dir vielleicht auch mal preg_split an, kenns selbst nur vom lesen, habs erst selten verwendet ...

        http://www.php-resource.de/tutorials/read/10/1/
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Hi!

          PHP-Code:
          $parts=preg_split ("|----=_NextPart_(.*)_01C46F2D.04A7E520|U"
              
          "----=_NextPart_000_000E_01C46F2D.04A7E520
          Das hier ist Teil 1
          ----=_NextPart_000_001E_01C46F2D.04A7E520
          Das hier ist Teil 2
          ----=_NextPart_001_000E_01C46F2D.04A7E520
          Das hier ist Teil 3
          "
          );
          echo 
          count($parts);
          $i=1;
          while (
          $i count($parts)){
          echo 
          $parts[$i];
          $i++;

          So geht es, aber ist es auch richtig so?
          Ich habe mir das einfach mal zurechgebastelt und kenne mich mit regulären Ausdrücken leider nicht wirklich aus...

          Gruß,
          Gerti

          Kommentar

          Lädt...
          X