3v4l.org

run code in 300+ PHP versions simultaneously
<?php define("EMAIL_ADDRESS_WEBMASTER", "bestellung@reinarts.info"); define("EMAIL_ADDRESS_PRODUCER", "bestellung@reinarts.info"); define("EMAIL_SUBJECT_CUSTOMER_CONFIRMATION", "Muesli-Bestellung"); define("EMAIL_SUBJECT_PRODUCER_INFO", "Neue Bestellung"); /** * Verschickt Emails an den Kunden und den Hersteller. */ class Mailer { /** * Erzeugt und sendet die Bestaetigungsmail an den Kunden. */ function sendToCustomer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis) { // Header erzeugen $header = Mailer::createHeader(EMAIL_ADDRESS_PRODUCER); // Maintext erzeugen $mailtext = Mailer::createMailTextForCustomer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis); // Subject $subject = EMAIL_SUBJECT_CUSTOMER_CONFIRMATION; // Email verschicken mail($email, $subject, wordwrap($mailtext), $header); } /** * Erzeugt den Inhalt der Bestaetigungsmail an den Kunden. */ function createMailTextForCustomer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis){ $timestamp = time(); $datum = date("d.m.Y-H:i", $timestamp); $mailtext = "<html>"; $mailtext .= "<head><title>Reinarts M&uuml;sli Bestellung</title></head>"; $mailtext .= "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />"; $mailtext .= "<body>"; $mailtext = "<h1>Granola M&uuml;sli made by Reinart's</h1>"; $mailtext .= "<img src='http://reinarts.info/images/muesli_mailheader.png' alt='header'/>"; $mailtext .= "<p>Vielen Dank f&uuml;r Ihre Bestellung vom " . $datum . "!</p>"; $mailtext .= "<table border='0'>"; $mailtext .= "<tr>"; $mailtext .= "<td>"; $mailtext .= Mailer::createInfoTable($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis); $mailtext .= "</td>"; $mailtext .= "<td><img src='http://reinarts.info/images/muesli_mailpicture.png' alt='picture'/></td>"; $mailtext .= "</tr>"; $mailtext .= "</table>"; $mailtext .= "<p>Bitte best&auml;tigen Sie Ihre Bestellung und damit unsere <a href='http://reinarts.info/agb.html'>AGBs</a> durch klicken dieses Links.</p>"; $mailtext .= Mailer::createConfirmationLink($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum); $mailtext .= "</body>"; $mailtext .= "</html>"; return $mailtext; } /** * Erzeugt und sendet die Email vom Kunden an den Hersteller. */ function sendToProducer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum) { // Header erzeugen $header = Mailer::createHeader($email); // Maintext erzeugen $mailtext = Mailer::createMailTextForProducer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum); // Subject $subject = EMAIL_SUBJECT_PRODUCER_INFO; // Email verschicken mail(EMAIL_ADDRESS_PRODUCER, $subject, $mailtext, $header); } /** * Erzeugt den Inhalt der Email vom Kunden an den Hersteller. */ function createMailTextForProducer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum){ $mailtext = "<html>"; $mailtext .= "<head><title>Reinart's M¸sli Bestellung</title></head>"; $mailtext .= "<body>"; $mailtext .= "<h1>Eingangsbest&auml;tigung (Bestellung vom " . $datum . ")</h1>"; $mailtext .= Mailer::createInfoTable($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis); $mailtext .= "</body>"; $mailtext .= "</html>"; return $mailtext; } /** * Erzeugt den MailHeader UTF-8\r\n */ function createHeader($sender){ $header = 'MIME-Version: 1.0' . "\r\n"; $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; $header .= 'From: ' . $sender . "\r\n"; $header .= 'Reply-To: ' . $sender . "\r\n"; $header .= 'X-Mailer: PHP ' . phpversion(); return $header; } /** * Erzeugt die Info-Tabelle fuer beide Emails. */ function createInfoTable($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis){ $infoTable = "<table height='149' border='1'>"; $infoTable .= Mailer::createInfoRow("Name", $name); $infoTable .= Mailer::createInfoRow("Email", $email); $infoTable .= Mailer::createInfoRow("Strasse", $strasse); $infoTable .= Mailer::createInfoRow("Postleitzahl", $plz); $infoTable .= Mailer::createInfoRow("Stadt", $stadt); $infoTable .= Mailer::createInfoRow("Menge 250g", $menge250g); $infoTable .= Mailer::createInfoRow("Menge 500g", $menge500g); $infoTable .= Mailer::createInfoRow("Gesamtpreis", $preis); $infoTable .= "</table>"; return $infoTable; } /** * Erzeugt eine Zeile der Info-Tabelle. */ function createInfoRow($key, $value){ return "<tr><td>" . $key . ":</td><td>" . $value . "</td></tr>"; } /** * Erzeugt den a-Tag fuer die Bestaetigungsmail. */ function createConfirmationLink($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum){ $parameters = Mailer::createConfirmationLinkParam("name", $name); $parameters .= Mailer::createConfirmationLinkParam("email", $email); $parameters .= Mailer::createConfirmationLinkParam("strasse", $strasse); $parameters .= Mailer::createConfirmationLinkParam("plz", $plz); $parameters .= Mailer::createConfirmationLinkParam("stadt", $stadt); $parameters .= Mailer::createConfirmationLinkParam("menge250g", $menge250g); $parameters .= Mailer::createConfirmationLinkParam("menge500g", $menge500g); $parameters .= Mailer::createConfirmationLinkParam("preis", $preis); $parameters .= substr(Mailer::createConfirmationLinkParam("datum", $datum), 0, -1); return "<a href='http://reinarts.info/order/confirm.php?" . $parameters . "'>Bestellung best&auml;tigen</a>"; } /** * Erzeugt ein Key-Value-Paar fuer den a-Tag fuer die Bestaetigungsmail. */ function createConfirmationLinkParam($key, $value){ return $key . "=" . urlencode($value) . "&"; } } ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.4.00.0060.01215.08
7.3.120.0130.00714.77
7.3.110.0070.00714.56
7.3.100.0000.01214.90
7.3.90.0060.01314.96
7.3.80.0030.01014.95
7.3.70.0060.00914.68
7.3.60.0090.00614.78
7.3.50.0000.01314.64
7.3.40.0030.00714.50
7.3.30.0120.00314.78
7.3.20.0130.00716.41
7.3.10.0060.01016.35
7.3.00.0060.00616.28
7.2.250.0100.00714.88
7.2.240.0040.01514.71
7.2.230.0070.01114.97
7.2.220.0060.01314.98
7.2.210.0060.01214.76
7.2.200.0000.01314.74
7.2.190.0090.00614.61
7.2.180.0090.00614.71
7.2.170.0060.00614.94
7.2.00.0000.01319.19
7.1.330.0070.00715.70
7.1.320.0110.00415.56
7.1.310.0100.00715.70
7.1.300.0000.01415.46
7.1.290.0040.01115.38
7.1.280.0090.00615.36
7.1.270.0090.00615.48
7.1.260.0060.01315.49
7.1.100.0070.01017.64
7.1.70.0120.00017.01
7.1.60.0090.00919.46
7.1.50.0060.01616.69
7.1.00.0030.07722.29
7.0.200.0050.00316.59
7.0.140.0000.06022.09
7.0.100.0470.06720.13
7.0.90.0030.04720.07
7.0.80.0100.05320.01
7.0.70.0130.07720.01
7.0.60.0170.07719.97
7.0.50.0070.08320.41
7.0.40.0100.08720.09
7.0.30.0130.07320.04
7.0.20.0070.07720.09
7.0.10.0070.03720.14
7.0.00.0070.08720.07
5.6.280.0000.07721.04
5.6.250.0130.04320.66
5.6.240.0130.07320.64
5.6.230.0130.08020.79
5.6.220.0100.08320.71
5.6.210.0070.04320.66
5.6.200.0000.07020.93
5.6.190.0070.08321.10
5.6.180.0030.08321.12
5.6.170.0070.08021.00
5.6.160.0100.07021.06
5.6.150.0030.08020.99
5.6.140.0100.06721.08
5.6.130.0000.08721.07
5.6.120.0100.08021.07
5.6.110.0030.04321.04
5.6.100.0000.04320.96
5.6.90.0100.03321.13
5.6.80.0070.03720.36
5.6.70.0070.03720.46
5.6.60.0100.03320.36
5.6.50.0070.06020.54
5.6.40.0070.04320.41
5.6.30.0070.07020.48
5.6.20.0030.04320.43
5.6.10.0030.04020.45
5.6.00.0030.04020.30
5.5.380.0070.09020.53
5.5.370.0100.08020.40
5.5.360.0030.06720.48
5.5.350.0170.04020.46
5.5.340.0070.07720.66
5.5.330.0130.04020.77
5.5.320.0030.07720.84
5.5.310.0130.07320.91
5.5.300.0100.06720.91
5.5.290.0130.07320.80
5.5.280.0070.08720.89
5.5.270.0000.05320.94
5.5.260.0100.03720.80
5.5.250.0070.03720.48
5.5.240.0030.04020.26
5.5.230.0000.05020.22
5.5.220.0070.03720.32
5.5.210.0070.05720.32
5.5.200.0070.03720.20
5.5.190.0030.08320.12
5.5.180.0030.07320.20
5.5.160.0070.03720.25
5.5.150.0070.03720.30
5.5.140.0030.04020.30
5.5.130.0030.04020.25
5.5.120.0030.03720.14
5.5.110.0070.06020.03
5.5.100.0030.05020.20
5.5.90.0070.03320.20
5.5.80.0070.03720.11
5.5.70.0070.04020.19
5.5.60.0070.03720.19
5.5.50.0100.05720.12
5.5.40.0000.04020.13
5.5.30.0070.07319.99
5.5.20.0030.04020.17
5.5.10.0070.03720.09
5.5.00.0070.04019.98
5.4.450.0100.07319.23
5.4.440.0030.09019.36
5.4.430.0000.04319.37
5.4.420.0000.04019.53
5.4.410.0030.06319.24
5.4.400.0000.04318.86
5.4.390.0070.03319.18
5.4.380.0170.02319.02
5.4.370.0070.05718.95
5.4.360.0100.06719.23
5.4.350.0000.04019.11
5.4.340.0130.02718.90
5.4.320.0070.07018.91
5.4.310.0070.04319.18
5.4.300.0030.04719.23
5.4.290.0070.05319.15
5.4.280.0030.04019.12
5.4.270.0100.03319.14
5.4.260.0070.04319.12
5.4.250.0030.04019.23
5.4.240.0000.06019.24
5.4.230.0000.04319.11
5.4.220.0000.04019.04
5.4.210.0070.03719.02
5.4.200.0100.03319.04
5.4.190.0030.03719.15
5.4.180.0070.03719.11
5.4.170.0070.03719.19
5.4.160.0030.04719.13
5.4.150.0030.03719.15
5.4.140.0000.04016.44
5.4.130.0100.03316.47
5.4.120.0030.03316.37
5.4.110.0070.03316.35
5.4.100.0000.03716.30
5.4.90.0030.03716.49
5.4.80.0030.03716.51
5.4.70.0070.03016.50
5.4.60.0000.03716.37
5.4.50.0030.03316.37
5.4.40.0030.03316.48
5.4.30.0070.03316.48
5.4.20.0130.02316.32
5.4.10.0070.04716.33
5.4.00.0000.03715.91

preferences:
30.63 ms | 401 KiB | 5 Q