Adreas A.: auslesen mit PHP

Guten Tag Forum,

habe hier einen Artikel gelesen, wo es um das Auslesen von Text Datein geht.
Leider ist nicht viel geschrieben worden.

Das gleiche Problem arbeite ich auch... jedoch bin ich PHP Anfänger und Plan das noch nicht so recht ab.

Vielleicht ist einer von euch so nett und hilft mir dabei!

Habe auch Emails von unserem Outlook auf Platte gespeichert.
Diese Email hinterlege ich auch in einer Tabelle.
Mußte bisher (schon seit über einem halben Jahr) immer die Email Adresse selbst (vom Absender) eingeben.

Ich habs auch mal versucht mit diesem Code:

if false == ($datei=file_get_contents( './tempfile.tmp' ))
    {
    echo "Datei fehlt";
 }
  else
    {
    echo "Datei vorhanden! ";
  $los = strpos($datei, 'From:');
  $end = strpos($datei, '\n', $los);
  $ergebnis = substr($datei, $los, $end);
 echo $ergebnis
    }

Dabei bekomme ich als erstes die Fehlermeldung:
Parse error: syntax error, unexpected T_STRING, expecting '(' in G:\VirtualHosts\V-I-S\MAIL02_04_Emails_zuordnen.php on line 21

und zweitens möchte ich aus dieser Datei die Zeile mit dem **** am Ende ausgegeben haben:

X-Mailer: Lotus Notes Release 7.0.2 September 26, 2006
Message-ID: OFF6489216.xxxxxxx-xxxxxxx.xxxxx-C125748E.002370B6@Icopal.com
From: Andreas Ammer andra@xxxxxx.de       ****** diese Zeile soll ausgegeben werden
Date: Tue, 22 Jul 2008 08:21:48 +0200

Da mein Interesse nun wieder groß ist das ich das auch so hinbekomme wie andere, hoffe ich auf eure Hilfe...

Vorab vielen danke und viele Grüße
Andreas A.

  1. Hi,

    Dabei bekomme ich als erstes die Fehlermeldung:
    Parse error: syntax error, unexpected T_STRING, expecting '(' in G:\VirtualHosts\V-I-S\MAIL02_04_Emails_zuordnen.php on line 21

    Naja, vielleicht wäre sinnig, die Zeile 21 einmal anzusehen. Im Prinzip beschwert er sich, dass er einen String, eine Zeichenkette, bekommt, obwohl er eigentlich eine '(' haben möchte.
    Soviel zum Englischkurs.
    De Facto treten bei mir solche Fehler immer nach vergessenen Zeilenendssemikolon auf. Schau mal Zeile 21 und die davor liegenden Zeilen in deinem Code an. Sollte deiner Meinung nach dort alles in Ordnung sein, brauchen wir die Zeile 21 und deren Kontext, um weiterzuhelfen.

    und zweitens möchte ich aus dieser Datei die Zeile mit dem **** am Ende ausgegeben haben

    1.) Einen Array mit dem Dateiinhalt füllen (http://de.php.net/manual/de/function.file.php)
    2.) Zeile 4 des Arrays ist dein Wert: $array[3]

    Grüße
    Lukas

    1. Hi,

      ok... fehler Gefunden ( hatte gefehlt und )...

      aber :)

      nun finktionsierts halbwergs! :)

      Code:
      if (false == ($datei=file_get_contents('./tempfile.tmp')))
          {
          echo "Datei fehlt";
       }
        else
          {
          echo "Datei vorhanden! ";
        $los = strpos($datei, 'From:');
        $end = strpos($datei, 'Date', $los);     <--- ist da der Fehler??
        $ergebnis = substr($datei, $los, $end);
       echo $ergebnis;
          }

      wenn ich nun in der Zeile wo $end festgelegt wird mit \n suchenlassen ist keine Ausgabe vorhanden.
      Wenn ich z.B. nach Date als Endwert suchen lasse findet er zwar was aber seht so aus:

      Datei vorhanden! From: Andreas Ammer Date: Tue, 22 Jul 2008 08:21:48 +0200 X-MIMETrack: Serialize by Router on DKSMTP1/SR... usw ... usw...

      Wenn ich das richtig verstehe... sucht er unter $los von anfang an nach dem From: und bei $end sucht er auch von Anfang der Datei an nach diesem Zeichen - was bedeutet, wenn ich mit \n suche, wir er nie zu einem Ergebnis kommen weil ggf. \n (Zeilenumbruch) vor $los kommt oder???

      Und was nun ?

      Bitte um Hilfe...

      Danke
      Andreas

      1. Hallo Andreas,

        wenn ich nun in der Zeile wo $end festgelegt wird mit \n suchenlassen ist keine Ausgabe vorhanden.

        \n (Zeilenumbruch) vor $los kommt oder???

        '\n' und "\n" sind zwei völlig unterschiedliche Zeichenketten, siehe Abschnitt Double quoted im Handbuch.

        Freundliche Grüße

        Vinzenz