marco: var_dump() und print_r in variable speichern!?

guten abend,

also ich definiere eine variable:

($_SESSION['gfr'] ist ein array)

$prmailgfr = var_dump($_SESSION['gfr']);

diese variable möchte ich in einer email versenden.
also mail($empf,$betr,"(...)$prmailgfr(...)",$hdrs);
nun gibt er mir diesen string (also die arrayinfos zu den einzelnen elementen usw.) aber aus und die variable bleibt leer.

ich habe dasselbe auch schon mit print_r() versucht, aber leider kommt dabei das gleiche raus.

kann mir jemand sagen wie ich das machen soll, oder was nun daran falsch ist?

vielen dank, marco.

  1. hi,

    $prmailgfr = var_dump($_SESSION['gfr']);

    welchen rückgabewert bzw. typ von rückgabewert hat den var_dump() deiner meinung nach?

    richtig, wie du unter http://www.php.net/manual/de/function.var-dump.php nachlesen kannst, den typ "void", also genauer gesagt überhaupt keine rückgabe - diese funktion erzeugt direkt eine _ausgabe_, aber keine _rückgabe_.

    also kann die zuweisung zu einer variablen so nicht funktionieren.
    und bei print_r() genau das gleiche. diese funktionen sind halt vornehmlich zum debuggen gedacht ...

    kann mir jemand sagen wie ich das machen soll, oder was nun daran falsch ist?

    du könntest natürlich mit output buffering arbeiten, ob_start() und ob_get_contents(), um die direkte ausgabe obiger funktionen "einzufangen".

    aber einfacher wäre es vermutlich, wenn du einfach dein array mit foreach() durchläufst, und dir in dieser schleife die werte in deiner variablen ablegst.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hello,

      welchen rückgabewert bzw. typ von rückgabewert hat den var_dump() deiner meinung nach?

      richtig, wie du unter http://www.php.net/manual/de/function.var-dump.php nachlesen kannst, den typ "void", also genauer gesagt überhaupt keine rückgabe - diese funktion erzeugt direkt eine _ausgabe_, aber keine _rückgabe_.

      also kann die zuweisung zu einer variablen so nicht funktionieren.
      und bei print_r() genau das gleiche. diese funktionen sind halt vornehmlich zum debuggen gedacht ...

      Das ist nicht mehr zutreffend.
      mit

      $output = nl2br(htmlentities(print_r($var,true));

      echo $output;

      oder ähnlichen Konstrukten

      kann man ganz hervorragend die Ausgabe dorthin leiten, wohin man sie haben will. AUch in eine eMail. man sollte nur daran denken, den Zeichensatz entsprechend anzupassen.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. hi,

        und bei print_r() genau das gleiche. diese funktionen sind halt vornehmlich zum debuggen gedacht ...

        Das ist nicht mehr zutreffend.

        ja, danke - Tobias hatte in https://forum.selfhtml.org/?t=91332&m=549269 auch schon darauf hingewiesen.
        da war ich halt nicht ganz up to date :-)

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Hi!

    guten abend,

    also ich definiere eine variable:

    ($_SESSION['gfr'] ist ein array)

    $prmailgfr = var_dump($_SESSION['gfr']);

    diese variable möchte ich in einer email versenden.
    also mail($empf,$betr,"(...)$prmailgfr(...)",$hdrs);
    nun gibt er mir diesen string (also die arrayinfos zu den einzelnen elementen usw.) aber aus und die variable bleibt leer.

    Genau dafür sind die Funktionen print_r() und var_dump() auch da - nämlich zum Ausgeben der Informationen zu Variablen und Arrays.

    Du müsstet zum Ausgeben der einzelnen Teile der Variablen foreach verwenden und diese dann in einen String schreiben lassen. Beispiel: http://fabis-site.net/webdesign/formmailer.html

    Grüße,
    Fabian St.

    --
    Endlich online: http://fabis-site.net
    --> XHTML, CSS, PHP-Formmailer, Linux
    Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
  3. Hallo marco,

    $prmailgfr = var_dump($_SESSION['gfr']);
    diese variable möchte ich in einer email versenden.

    bei var_dump wirst du mit ob_start() arbeiten müssen, aber bei print_r dürfte es helfen der Funktion als zweiten Parameter ein true zu übergeben.

    Grüße aus Nürnberg
    Tobias