04. november 2004 - 09:27
Der er
16 kommentarer
Problem med af afvikling af php kode i template.
Vi har lavet et template system i php hvor vi via file_get_content inkludere en fil med noget php og html kode. Problemet er at den ikke afvikler php kode som vi får ind med file_get_content. Er det os der er dumme eller er det en sikkerhedsforanstaltning i php som gør at file_get_content ignorere php kode? Vi har prøvet med file og fileread og fopen men med samme resultat og kan ikke finde noget om problemet på php.net eller her på eksperten.
Annonceindlæg fra Trustworks
Tillid i en Zero-Trust verden
Med voksende trusler, nye EU-krav og øget kompleksitet er cybersikkerhed nu en central ledelsesopgave på linje med strategi og økonomi.
04. november 2004 - 09:29
#1
prøv med include("dinfil.php");
04. november 2004 - 09:33
#2
Problemet er ikke include på den måde. Vi skal have læst indholdet ind i en streng for derefter lave nogle replaces og så udskrive den...
04. november 2004 - 09:36
#3
Hvis det er vilkårligt php-kode, så er der ikke andet for end at bruge include Du kan fx <?php function callback($buffer) { // replace all the apples with oranges return (str_replace("apples", "oranges", $buffer)); } ob_start("callback"); include("dinfil.php"); ob_end_flush(); ?>
04. november 2004 - 09:41
#5
Tak.. Kan du ikke lige poste et svar istedet for en kommentar så du kan få dine point.
04. november 2004 - 09:42
#6
Nej tak, jeg samler slet ikke på point. Men en anden gang så skriv hvad det er du skal bruge det til i spørgsmålet. ;)
04. november 2004 - 09:44
#7
Iorden. skal jeg nok huske.. men endnu engang tak for hjælpen.
04. november 2004 - 10:16
#8
hmm - file_get_contents burde nu virke, prøv dette, virker kun hvis fopen wrappers er enabled da jeg bruger http, men det virker med lokale filer ( templates )
<?php
$t = "<BASE href='
http://eksperten.dk/'>".file_get_contents ( "
http://eksperten.dk/spm/557789" )."</BASE>";
$t = str_replace( "bruge include", "bruge include eller file_get_contents :-) ", $t );
echo $t;
?>
04. november 2004 - 10:19
#9
ups - nej, mig der er dum ( igen ) sorry
04. november 2004 - 11:18
#10
det kan vel løses med det her, indbyg selv fejlhåndtering <? $t = file_get_contents( "rod.php" ); // lav det replace i $t du skal have $fh=fopen("tmp.php", "w" ); fwrite($fh, $t ); fclose($fh); include "tmp.php"; unlink( "tmp.php" ); ?>
04. november 2004 - 11:22
#11
Men du synes vel heller ikke det er en god løsning, vel? ;) Problemet er jo så lige at få lavet erstatningerne i den genererede HTML, hvilket min kodestump jo løser ganske fortrinligt.
04. november 2004 - 11:27
#12
jo din løsning er perfekt, med mindre der er noget php eller lign der skal ændres før siden vises.
04. november 2004 - 11:30
#13
Ja, med mindre ... men det er jo ikke det spørgeren har behov for. Jeg vil gerne opfordre spørgeren til at lukke spørgsmålet: svar selv, accepter eget svar.
04. november 2004 - 11:34
#14
Det siger spørgeren faktisk ikee noget om, kun at der skal replaces, men pyt nu
04. november 2004 - 11:42
#15
Jo, det gør spørgeren, hvis du gad læse hvad det står. Men helt enig: pyt med det.
04. november 2004 - 12:02
#16
Lukket
Vi tilbyder markedets bedste kurser inden for webudvikling