String vergleichen Imap

Sundermeier

Grünschnabel
Hi
Ich habe ein Problem mit meiner Imap Funktion.
Ich möchte alle emails ausgeben, was auch funktioniert. Allerdings funktioniert die if-schleife nicht.
Ich möchte den Absender der Mail mit einem String vergleichen.

PHP:
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
  $i=0;
  foreach($result as $overview)
  {
    //Body auslesen
    $body = imap_body($mbox,$overview->msgno);
    //Absender
    $overview->from = str_replace("\"","", $overview->from);
    echo "$overview->from - ";

    //echo"$body";
    if($overview->from == "beliebiger String")
    {

Ich hoffe ihr wisst was gemeint ist und könnt mir helfen.
 
[phpf]imap_fetch_overview[/phpf] liefert ein Array ($array["zugriff"]) und kein Objekt ($objekt->zugriff). Behandle es mal (wie gezeigt) als Array.

Zudem:
PHP:
var_dump($variable);
Dies gibt dir mehr Informationen über eine Variable.
 
Hi,

[phpf]imap_fetch_overview[/phpf] liefert ein Array ($array["zugriff"]) und kein Objekt ($objekt->zugriff). Behandle es mal (wie gezeigt) als Array.

Das tut er doch, er durchläuft es mit foreach()...

@Sundermeier: Das musst Du uns schon zeigen. Mach mal ein var_dump($overview) in der Schleife, zeig uns die Ausgabe (von einem) und den String, mit dem Du das vergleichen willst.

LG
 
hi
wenn ich es als array verwende ($overview["from"]) kommt ein Fehler:
Fatal error: Cannot use object of type stdClass as array in C:\xampp\htdocs\paidmails\getMail.php on line 31

var_dump($overview->from); liefert: string(58) "xxx"
 
object(stdClass)#111 (14) { ["subject"]=> string(4) "test" ["from"]=> string(34) "Daniel " ["to"]=> string(20) "xxx@xxx.de" ["date"]=> string(30) "Thu, 3 Sep 2009 11:27:26 +0200" ["message_id"]=> string(36) "<000f01ca2c78$c05d2d30$41178790$@de>" ["size"]=> int(3781) ["uid"]=> int(131) ["msgno"]=> int(110) ["recent"]=> int(0) ["flagged"]=> int(0) ["answered"]=> int(0) ["deleted"]=> int(0) ["seen"]=> int(1) ["draft"]=> int(0) } keine if schleife

jetzt will ich in der if Schleife abfragen ob from = Daniel ist

PHP:
if($overview->from == "Daniel")
{
  tu was
}
else{
  echo"keine if Schleife";
}
 
Zuletzt bearbeitet:
object(stdClass)#111 (14) { ["subject"]=> string(4) "test" ["from"]=> string(34) "Daniel " ["to"]=> string(20) "xxx@xxx.de" ["date"]=> string(30) "Thu, 3 Sep 2009 11:27:26 +0200" ["message_id"]=> string(36) "<000f01ca2c78$c05d2d30$41178790$@de>" ["size"]=> int(3781) ["uid"]=> int(131) ["msgno"]=> int(110) ["recent"]=> int(0) ["flagged"]=> int(0) ["answered"]=> int(0) ["deleted"]=> int(0) ["seen"]=> int(1) ["draft"]=> int(0) }

Dort ist ein Leerzeichen am Ende. ;)

LG

PS.: If ist keine "Schleife". ;)
 
PHP:
if($overview->from == "Daniel ") 
{ 
  tu was 
} 
else{ 
  echo"keine if Schleife"; 
}
das funktioniert auch nicht.
PHP:
$overview->from = str_replace("\"","", $overview->from);
    $overview->from = trim($overview->from);
außerdem ist das recht komisch weil ich vorher mit trim() die Leerzeichen abschneide?!
 
object(stdClass)#111 (14) { ["subject"]=> string(4) "test" ["from"]=> string(34) "Daniel " ["to"]=> string(20) "xxx@xxx.de" ["date"]=> string(30) "Thu, 3 Sep 2009 11:27:26 +0200" ["message_id"]=> string(36) "<000f01ca2c78$c05d2d30$41178790$@de>" ["size"]=> int(3781) ["uid"]=> int(131) ["msgno"]=> int(110) ["recent"]=> int(0) ["flagged"]=> int(0) ["answered"]=> int(0) ["deleted"]=> int(0) ["seen"]=> int(1) ["draft"]=> int(0) }

schau wie gesagt mal in den Quelltext, der String "Daniel " ist wohl kaum 34 Zeichen lang. Da steckt noch mehr drin.

LG
 
Zurück