[php] template probleempje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • zemartino
  • Registratie: Augustus 2002
  • Niet online
Ik heb een raar probleem waarvoor ik geen duidelijke oplossing voor weet.

Ik wil een html template (op eigen domein) openen en de contents in een variabele zetten. In die template zit ook php code. Deze php code bepaalt o.a. de locatie van de style sheet voor de html code.

ff als voorbeeld, hoe de inhoud van die template file eruit ziet:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
<?php

$style_sheet=$url_mijn_website."css/huisstijl.css";
?>
<link rel='stylesheet' href="<?=$style_sheet ?>"  type='text/css'>
</head>
<body>

...nog meer template tags hier

</body>
</html>


De contents van het bestand wil ik toevoegen aan een variabele, bijvoorbeeld op deze manier:

PHP:
1
2
3
$var = "<textarea>";
$var.= $template_contents;
$var.= "</textarea>";


Wanneer ik echter de contents van de file uitlees via de functies fopen, fread e.d. wordt de code niet geparsed omdat het bestand binnen mijn eigen domein staat.
Include werkt mijns inziens niet omdat dan de html code geplaatst wordt op de pagina en niet gestopt in een variabele.

Is hier een oplossing voor?

[ Voor 9% gewijzigd door zemartino op 09-01-2003 10:47 ]


Acties:
  • 0 Henk 'm!

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 08-09 13:47
Eeeh, wat wil je nou precies? Je bent iets aan het maken waarmee de user de eerste blok code (je template) kan editen? Mij lijkt dat je dan gewoon met file() of een dergelijke functie je file in kan lezen in een var en die in je textarea kan laten zien...

Als je je template geparsed wil laten zien dan kan je eens naar exec().

BTW kijk eens naar echte template engines zoals Smarty, dat werkt een heeeeeeel stuk beter dan wat je nu doet (met <?=$bla?> en is een heel stuk veiliger, gebruiksvriendelijker en minder foutgevoelig..

Acties:
  • 0 Henk 'm!

  • zemartino
  • Registratie: Augustus 2002
  • Niet online
Editen binnen een textarea is idd de bedoeling.
file() geeft de php ongeparsed terug, hetzelfde geldt voor fread etc.
de exec() en passthru() functie geven geen output terug.
De toepassing van de templates is zo kleinschalig, dat ik me niet ga wagen aan een template engine...

Is er geen manier om een de normale bestands access te omzeilen en een http request via de parser te doen binnen je eigen domein?

Acties:
  • 0 Henk 'm!

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
fopen("http://url/path/to/file", "r") zou het moeten doen (of file() op die url natuurlijk) zou ik denken...
Maar wat heb je er aan om de geparste file te lezen, bij het opslaan ervan krijg je dan nooit meer de originele php-dingen terug. Lijkt me toch niet echt de bedoeling??

[ Voor 49% gewijzigd door SWfreak op 09-01-2003 13:34 ]