Problem mit Strings

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

  • Problem mit Strings

    Hallo ich hab folgendes Problem:

    ich möchte Mails über Pop3 direkt mit PHP abrufen,
    das klappt soweit auch,
    den Absender filtere ich über folgende Zeile heraus :
    PHP-Code:
      $msg_from htmlspecialchars(header_get(&$msg_text"From:")); 
    Wie muß ich den Absender nun formatieren dass ich folgendes Format erhalte:
    Absendername

    Kann mir da evtl jemand helfen ?
    Danke

  • #2
    Salut

    also hier drängt sich ein regulärer Ausdruck geradezu auf. Ich verwende die POP3 Klasse von TBT (suchen im Codeschnipsel). Diese gibt die Header der Mail und den Body getrennt zurück.
    Wenn dein gesamter Header der Mail auf $header_mail gespeichert ist, dann würde ich das so machen:
    PHP-Code:
    preg_match("#From: (.*)#i"$header_mail,$from);
    $absender preg_replace("'From: '","",$from[0]) 
    Das sollte dir die Absender Adresse à la irgendjemand<wer@was.de> zurückgeben.

    Gruss

    tobi
    EDIT:

    anbei noch der Link
    POP3 Klasse

    Zuletzt geändert von jahlives; 18.11.2004, 11:58.
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      danke,

      ich bekomme den Absender schon in diesem Format,: name<email@adresse.xx> nöchte jetzt aber nur den Namen haben

      bisher mach ich es so :
      PHP-Code:
       // Mailübersicht
       
      if ($messages >= 1) {
        echo 
      "<table>\n";
        echo 
      "<tr><th></th><th width=200>Betreff</th><th width=200>Von</th><th width=100>Datum</th><th>Byte</th><th></th></tr>";
        
      $msg_sizes = array();
        
      fputs($pop_connection"LIST\r\n");
        
      fgets($pop_connection512); // Bestätigung
        
      while (($buffer fgets($pop_connection512)) != ".\r\n") {
         
      $msg_id strtok($buffer," ");
         
      $msg_sizes[$msg_id] = strtok(" ");
        }

        for (
      $msg_id 1$msg_id <= $messages$msg_id++) {
         if (
      $msg_text getmessage($pop_connection$msg_id0)) {
          
      $msg_subject header_get(&$msg_text"Subject:");
          
      $msg_from htmlspecialchars(header_get(&$msg_text"From:"));
          
      $msg_date header_get(&$msg_text"Date:");
          
      $length strpos($msg_date":") - 3;
          
      $msg_date substr($msg_date0$length);
         }
         echo 
      "<tr><td>$msg_id</td><td><b><a href=\"readmail.php?log=$log&msg_id=$msg_id\">\"$msg_subject\"</a></b></td>";
         echo 
      "<td>$msg_from</td><td>$msg_date</td><td>$msg_sizes[$msg_id]</td>";
         echo 
      "<td><a href=\"delete.php?log=$log&msg_id=$msg_id\">löschen</a></td></tr>\n";
        }
        echo 
      "</table>\n"

      Kommentar


      • #4
        PHP-Code:
        echo $mail 'name <name.vorname@gmx.de>';
        echo 
        ' => ';
        echo 
        trim(current(explode('<'$mail)));

        echo 
        '<br /><br />';

        echo 
        $mail2 'name.vorname@gmx.de';
        echo 
        ' => ';
        echo 
        trim(current(explode('<'$mail2))); 
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mgoertz
          ich bekomme den Absender schon in diesem Format,: name<email@adresse.xx> nöchte jetzt aber nur den Namen haben
          <unsauber>
          dazu würde ja vermutlich strip_tags() schon ausreichen :-)
          </unsauber>
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            ok ich werde es mal versuchen

            Kommentar

            Lädt...
            X