Jag har ett script som skapar en faktura då man kallar på invoice.php?faktura=1234.
Nu ska jag i vissa fall bifoga en faktura i ett mail, mailet skickas från filen filnamn.php.
Kan jag "köra" filen invoice.php?faktura=1234 innifrån filnamn.php på något sätt?
Det jag vill åstadkomma är att när filnamn.php körs, ska en faktura skapas "i bakgrunden" från filen invoice.php?faktura=1234 som jag sen kan bifoga i mitt mail.
Vilken är den bästa lösningen för att åstadkomma det här?
Rent spontant - räcker det inte med en require_once ?
Då får jag:
Warning: require_once(/school.invoice.php?invoice=2245000) [function.require-once]: failed to open stream: Operation not permitted
Filen school.invoice.php genererar en PDF fil m.h.a FPDF och jag kan välja hur filen ska skapas, som fil, som stream osv. enligt Output() i dokumentationen.
Vad genererar school.invoice.php för utdata? Sparas PDF-filen på servern, eller skickas den till klienten? Du skulle kunna anropa sidan via fsockopen() eller helt enkelt med file_get_contents() med hela URL:en, så att PHP-koden tolkas innan utdata skickas.
$output = file_get_contents("http://www.domain.com/school.invoice.php?invoice=1234");
/* Om school.invoice.php sparar ner PDF-filen på servern: */
$pdfFile = file_get_contents("/path/to/invoice1234.pdf");
Med sockets kan du styra lite mer vad som skickas till sidan och vad du ska ta emot.
Så det beror lite på hur PDF-filen sparas eller om den streamas.
Får det inte att funka alls...
Såhär står det i dokumentationen:
Destination where to send the document. It can take one of the following values:
\* I: send the file inline to the browser. The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
\* D: send to the browser and force a file download with the name given by name.
\* F: save to a local file with the name given by name (may include a path).
\* S: return the document as a string. name is ignored.
Jag tolkar det som att det är I jag ska använda för att få en stream.
Men det funkar inte med något av ovanstående sätt.
Nu löste det sig.
Jag valde "F" som argument till Output och när jag körde file_get_contents skapas PDF filen i en tempmapp, som jag sedan kan bifoga i mailet.
Konstigt dock att det inte fungerar att ta emot filen som en ström.
255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25