Avatar billede hwlarsen Nybegynder
13. januar 2003 - 20:44 Der er 13 kommentarer og
1 løsning

Include eller hva?

Hej

Jeg har et php-script som sender en mail, jeg vil så gerne kunde include en anden phpfil som danner htmlkoden til emailen!

Altså det egentlige spørgsmål er hvad jeg skal gøre for at:

$variabel = include("fil.php");

Jeg vil så have outputtet fra include ind i variablen!
Er dette muligt? Hvordan?
Avatar billede angam Nybegynder
13. januar 2003 - 20:54 #1
$filename = 'fil.php';
$fp = fopen($filename, 'r');
$variabel = fread($fp, filesize($filename));
fclose($fp);
Avatar billede Slettet bruger
13. januar 2003 - 20:54 #2
Ja den kan du sådan set godt:

fil.php:

<? return "test"; ?>

udskriv.php:

<? $variabel = include("fil.php"); echo $variabel; ?>

udskriv.php vil således udskrive "test".
Avatar billede angam Nybegynder
13. januar 2003 - 20:55 #3
*lol* - jeg tror jeg får 03 for misforstået opgave *ggg*
Avatar billede dennism Nybegynder
13. januar 2003 - 20:57 #4
angam >>

Det tror jeg ikke.. Du får nok nærmere 00! :)
Avatar billede hwlarsen Nybegynder
13. januar 2003 - 20:58 #5
Tjaa... jeg får den tekst der er i filen... men jeg vil gerne have udført filen først. Således at jeg ikke får indlæst php koden i $variabel
Avatar billede Slettet bruger
13. januar 2003 - 21:00 #6
hwlarsen: Det er præcis det du får, hvis du gør, som jeg skriver.

fil.php:

<?
$foo = 5 + 2;
return $foo;
?>

udskriv.php udskriver nu 7
Avatar billede angam Nybegynder
13. januar 2003 - 21:00 #7
Se mercur8's løsning - den burde virke.
Det var bare mig der fik den idé at du ville sende _indholdet_ af en php-fil.. og først da jeg liiige akkurat havde trykket 'Udfør' opdagede miseren ... ak!

(Hvorfor kan man dog ikke slette indlæg herinde igen?)
Avatar billede hwlarsen Nybegynder
13. januar 2003 - 21:09 #8
mercur8<<

Det var også det jeg havde prøvt helt i starten men så får jeg "1" i $variabel og så udskriver den "test"....  også selvom man ikke laver echo $variabel...
Avatar billede hwlarsen Nybegynder
13. januar 2003 - 21:11 #9
Skal lige spise så hvis i har andre briliante forslag så fyr løs...
Avatar billede Slettet bruger
13. januar 2003 - 21:14 #10
hwlarsen: Du får kun 1 i $variabel, hvis du IKKE laver en return i den fil, du inkluderer. Dette 1 betyder bare, at filen kunne inkluderes. Hvis du derimod har en return (som i mine eksempler), så får du dette resultat i $variabel i stedet.

Du skal IKKE udskrive (echo, print etc.) noget fra fil.php. Men KUN retunere.
Avatar billede hwlarsen Nybegynder
13. januar 2003 - 21:28 #11
Ja okay, men skal hele den fil man includer så ikke være skrevet i php?
Jeg vil jo gerne kunne skrive noget i denne stil i den fil jeg includer... og så få det hele ind i $variabel

Fil:
<b>Her er html</b>
<? php
$foo = 2+5;
return $foo;
?>

Herved fås jo kun 7 tilbage jeg vil gerne have: "<b>Her er html</b>7"

Ved godt at jeg kan skrive:
<?
$foo = "<b>Her er html</B>....


men da jeg har en meget lang fil hvor der kun er lidt php i starten syndes jeg det er træls at skulle lave hele filen om til php!!

Er der stadig en løsning??
Avatar billede Slettet bruger
13. januar 2003 - 21:35 #12
Nej så er det ikke måden at gøre det på.

Du kan evt. kigge på eval() funktionen og bruge den som:

ob_start();
eval("fil.php");
$return = ob_get_contents();
ob_end_clean();

# brug $return her ...
Avatar billede Slettet bruger
13. januar 2003 - 21:39 #13
Lavede lige en fejl i eval() det skal være:

<?
ob_start();
eval(fread(fopen('fil.php', 'r'), filesize('fil.php')));
$return = ob_get_contents();
ob_end_clean();
echo $return;
?>
Avatar billede hwlarsen Nybegynder
13. januar 2003 - 22:16 #14
Fantastisk så kører det.. takker :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester