String zeilenweise ausgeben

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

  • String zeilenweise ausgeben

    Morgen! *gähn*

    Also, möchte folgendes umsetzen:

    Ich habe von einem IMAP-Server Mails abgerufen und möchte den BODY-Text zeilenweise verarbeiten.

    Mein Problem ist, wenn ich $body ganz normal mit
    PHP-Code:
    echo $body
    ausgebe, sieht das so aus
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    Das heisst, es wird alles in einer Zeile hintereinanderweg geschrieben.

    Wenn ich es ausgebe mit
    PHP-Code:
    echo "<pre>";
    print_r$body );
    echo 
    "</pre>"
    wird es vernünftig mit Zeilenumbrüchen angezeigt, also so:
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
    eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
    voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
    clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
    amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
    nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
    diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
    clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
    amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
    nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
    diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
    clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
    amet.

    Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
    molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros
    et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril
    delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit
    amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt
    ut laoreet dolore magna aliquam erat volutpat.
    Da ich den BODY-Text aber noch hinsichtlich bestimmter Merkmale durchsuchen möchte, hätte ich ihn gerne zeilenweise in einem Array.
    Ich denke, dass ist nicht so schwer zu bewerkstelligen, aber wäre nett, wenn Ihr mir auf die Sprünge helfen könntet!

    Vielen Dank!

  • #2
    nl2br()

    btw: für was durchsuchen?

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Kommentar


    • #3
      Hallo xManUx!

      Das ist es leider noch nicht ganz, was ich suche. Mein Skript erzeugt keine Ausgabe auf dem Bildschirm, BR-Tags helfen mir da nicht viel weiter.
      Das Skript schreibt den Inhalt der Mail zur Weiterverarbeitung durch ein anderes Programm auf den Server - aber das läuft schon, wenn ich es mit print_r in eine Datei schreiben habe ich es ja mit Absätzen und so.

      Das Problem ist, das ich die Mail zeilenweise analysieren möchte (ob es eine Auftrags- oder Störungsmail ist - wenn es Dich interessiert ) und dazu bräuchte ich $body zeilenweise in einem Array.

      Any ideas? ich weiss, es ist noch früh ...

      Kommentar


      • #4
        explode sollte dir dabei helfen, als Trenner kannst du folgendes versuchen:
        - \n
        - \r
        - \r\n

        Kommentar


        • #5
          PHP-Code:
          $body_zerlegt explode("\n",$body);
          if(
          $debug)
          {
             echo 
          "<br>Anzahl Array-Elemente: ".count($body_zerlegt)."<br>";
             for(
          $x=0;$x<count($body_zerlegt);$x++)
                echo 
          "<br>".$body_zerlegt[$x];

          haut hin!

          Wusste nicht, dass man auch mit "\n" exploden kann!

          Vielen vielen Dank!!

          Kommentar


          • #6
            by the way: Was macht "\r"? Ist das nur CR ohne LF?

            Kommentar


            • #7
              \r ist bei Mac, \r\n ist bei Windows, \n ist bei Linux

              Kommentar


              • #8
                I C

                Thanks!

                Kommentar


                • #9
                  Noch besser ist es, mit RegExp zu arbeiten und die Funktion preg_split zu
                  nutzen.
                  PHP-Code:
                  $text "MAC\rWin\r\nothers\n";

                  $arrBody preg_split("/(\r\n|\r|\n)/"$text);

                  if (
                  $arrBody[sizeof($arrBody) - 1] == '') {
                      
                  array_pop($arrBody);
                  }

                  print_r($arrBody);

                  if(
                  $debug)
                  {
                     
                  printf("<br>Anzahl der Zeilen: %d <br>"sizeof($arrBody));
                     echo 
                  join('<br>'$arrBody);

                  cheers
                  Zuletzt geändert von schlimmerfinger; 10.12.2004, 12:13.
                  Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                  PHP Sicherheit
                  PHPUnit[1-2]
                  Professionelle Softwareentwicklung mit PHP 5
                  Professionelle PHP 5-Programmierung

                  Kommentar

                  Lädt...
                  X