28. november 2002 - 13:15
Der er
15 kommentarer og
1 løsning
Kan man få php til at parse en included fil?
Jeg er ved at lave et familienyhedbrev der sendes ud om html. Det går fint;
1. hvis jeg skriver html-historien direkte i min mail-funktion
2. hvis jeg laver en fopen
Det går knap så godt når jeg prøver at ay include den:
• $attachment = include("nyhedsbrev.htm");
Grunden til, at jeg vil include filen, er, at jeg henter noget godt fra en database.
Findes der et eller andet trick så man kan skrive:
$attachment = PARSE(include("nyhedsbrev.htm"));
ab:)
28. november 2002 - 13:21
#2
(Ved nærmere eftetanke tror jeg at jeg har misfortstået spørgsmålet.. sorry)
28. november 2002 - 13:24
#3
Alt i orden :-)
28. november 2002 - 13:48
#4
Include understøtter (desværre) kun at includere PHP-source. Derfor kan du desværre ikke include'e almindeligt HTML.
Hvis du alligevel siger: Det SKAL lade sig gøre.
så lav siden, så den starter med <?php ?>
og slutter med <? ?>
Så ser PHP at det er en PHP-fil med en HTML sektion.
Alternativt er fopen() nok den eneste mulighed.
28. november 2002 - 13:49
#5
Vi prøver lige igen:
Start på html-fil: <?php ?>
Slut på html-fil: <? ?>
28. november 2002 - 13:54
#6
Hvis du vil have vist HTML-koderne på siden, så kan du prøve med det her:
function vis_html_fil($filnavn)
{
$indhold_array=file($filnavn);
$indhold=implode('',$indhold_array);
return nl2br(htmlentities($indhold));
}
Personligt ville jeg foretrække en forkortet men mere kompliceret udgave:
function vis_html_fil($filnavn)
{
return nl2br(htmlentities(implode('',file($filnavn))));
}
28. november 2002 - 14:00
#7
>> xyborx: jeg tester løs...
28. november 2002 - 14:13
#8
>> xyborx: nixenbixen :-(
28. november 2002 - 14:14
#9
Øv bøv.. :/
Men held og lykke med det ;)
28. november 2002 - 14:16
#10
Takker :-)
28. november 2002 - 17:03
#11
Du sætter variablen $attachment i din include fil til at være indholdet af mailen (Husk escapes etc.)
Noget i stil med det her:
------ mail.inc ------
$attachment = "Mit mail indhold
som nu nok fylder mere end
en linje og som indholder ting
fra variablen \$noget som lige nu
er sat til {$noget}";
---- end mail.inc ----
------ fil.php ------
//Noget kode der henter værdiger fra en database.
include("mail.inc");
mail($to,$subject,$attachement);
---- end fil.php ----
Det skulle gøre tricket... I hvertfald virker det for mig et par steder.
28. november 2002 - 19:56
#12
Det virker desværre ikke for mig. Den tolker ikke mine $var og dem henter heller ikke noget fra db...
29. november 2002 - 05:22
#13
Husker du at lave filerne korrekt?
Her er hvordan include fungere...
Du har to filer.. a.php og a.inc
a.php indholder dette:
-------------------
<?
echo "dette er a.php";
include("a.inc");
?>
--------------------
a.inc ser sådan her ud:
--------------------
<?
echo "dette er a.inc";
?>
--------------------
PHP parseren vil opfatte de to filer sådan her:
<?php
echo "dette er a.php";
?>
<?php
echo "dette er a.inc";
?>
<?php
?>
--------------------
Så hvis du tildeler en variabel indholdet af mailen i en fil du inkludere EFTER du har tildelt de variabler der bruges i mailen en værdi, så vil det virke.. Dog har jeg kun forsøgt i tilfælde hvor mailen kun sendes til en modtager.
29. november 2002 - 11:06
#14
>>chanoa: dit eksempel virker fint, men når jeg overfører eksemplet til det egentlige formål kikser. Jeg bruger en forespørgsel til min db og dét vil den altså ikke håndtere.
Smider du et svar?
ab:)
29. november 2002 - 11:54
#15
Hmmm.. Tror det vil lykkes hvis du placere include() efter hver eneste gang du ændre variablerne burde det virke. Og husk at includede filer skal starte of slutte med <?php ?> ellers bliver de ikke parset.
Og nej, smider ikke et svar.. Gi' point til en anden, eller snup dem selv.
29. november 2002 - 12:01
#16
Den er go' - tak for indsatsen chanoa :-)
ab:)
Vi tilbyder markedets bedste kurser inden for webudvikling