PHP file_get_contents() mit variabel im string?
Im Versuch, eine E-Mail, um mit PHPMailer auf den Kunden über, wenn diese Bestellung eingegangen ist.
Ich habe versucht zu tun, dass dieser Weg:
$email_page = file_get_contents("email_order_html.php?order=$order_id");
Möchte ich, um die Inhalte dieser Seite als string, so kann ich senden Sie diese mit PHPMailer aber diese Funktion nicht ausführen der Seite verwendet, da die variable $order_id, wie kann ich dieses Problem beheben?
file_get_contents unterstützt URIs - php.net/manual/en/function.file-get-contents.php
stimmt, aber ich würde sagen, das Problem ist wahrscheinlich, dass die OP nicht wissen, den Unterschied zwischen dem Aufruf mit einer URI und einer lokalen Datei.
In der Tat, ich denke er tut 🙂 Er ist einfach über eine dynamische Seite zu generieren, die die gewünschten Inhalte anhand der order_id, die geschickt mit der Anfrage. Vielleicht eine etwas seltsame Art und Weise, es zu tun, aber sicherlich nicht die schlechteste, die ich gesehen habe 🙂
nur, dass file_get_content nicht generieren einer Seite hier, weil Ihr das abrufen der Datei von dem Dateisystem-und das nicht ausführen, es alle. Es gibt keine Anfrage.
Hm... guter Punkt... Argument nicht beginnen mit einem Protokoll-Bezeichner 🙁
stimmt, aber ich würde sagen, das Problem ist wahrscheinlich, dass die OP nicht wissen, den Unterschied zwischen dem Aufruf mit einer URI und einer lokalen Datei.
In der Tat, ich denke er tut 🙂 Er ist einfach über eine dynamische Seite zu generieren, die die gewünschten Inhalte anhand der order_id, die geschickt mit der Anfrage. Vielleicht eine etwas seltsame Art und Weise, es zu tun, aber sicherlich nicht die schlechteste, die ich gesehen habe 🙂
nur, dass file_get_content nicht generieren einer Seite hier, weil Ihr das abrufen der Datei von dem Dateisystem-und das nicht ausführen, es alle. Es gibt keine Anfrage.
Hm... guter Punkt... Argument nicht beginnen mit einem Protokoll-Bezeichner 🙁
InformationsquelleAutor Ryan | 2011-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nur hinzufügen, Query-Parameter bei Verwendung
file_get_contents
mit einer Url Bewusst, Stream-Wrapper, z.B., es würde fürhttp://localhost/yourfile.php?foo=bar
. Damit würde die Ausgabe eines HTTP Get-Anforderung an einen webserver unter localhost mit der angegebenen query params. Der Antrag wäre bearbeitet und das Ergebnis der Anfrage zurückgegeben werden.Bei der Verwendung
file_get_contents
mit einem Dateinamen nur, es werden nicht alle HTTP-Anforderungen. Wird der Anruf direkt auf Ihr Dateisystem. Ihr Dateisystem ist kein webserver. PHP liest nur den Inhalt der Datei. Es wird nicht das PHP script ausführen und liefert dann nur den text in dem Textfeld.Sollten Sie
include
die Datei und rufen, was macht das Skript manuell. Wenn das Skript hängt von der Reihenfolge argument, legen Sie es über$_GET['order'] = $orderId
vor, einschließlich der Datei.InformationsquelleAutor Gordon
email_template.php
sendmail.php
Hoffe es hilft jemandem 😉
InformationsquelleAutor Martijn van Hoof
Einer der sicherlich bessere Wege, es zu tun, wäre die Verwendung von output buffering kombiniert mit einfach einschließlich der content-Erstellung Skript.
InformationsquelleAutor brezanac
sowie
$order_id
wird in Ihrem DateiAber $order_id ist sicherlich erhältlich in den Ort, wo er den Aufruf von file_get_contents.
InformationsquelleAutor Londeren
Als Gordon sagte:
file_get_contents()
liest Dateien aus dem Dateisystem - text-oder Binär-Dateien, die nicht das Ergebnis der Ausführung dieser Dateien.Können Sie verwenden Curl (docs) zu tun, dass, im Falle dass Sie wollen, verschieben Sie das Skript auf einem separaten server. Im moment auch einfach die Datei und übergibt die Argumente direkt an die Funktion, die Sie wollen, ist ein sensibler Ansatz.
InformationsquelleAutor cbrandolino