---
title: "Problem med FastTemplate"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/15970-problem-med-fasttemplate"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Matti"
published: "2001-08-09T19:11:00.000Z"
updated: "2001-08-12T09:51:00.000Z"
replies: 11
views: 434
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/15970-problem-med-fasttemplate"
---

# Problem med FastTemplate

## #1 — Matti, 2001-08-09T19:11Z

Jag har problem med [FastTemplate](http://www.phpportalen.net/artikel.php?id=5)

spel.tpl

```
<HTML> 
<HEAD> 
<TITLE>{TITLE}</TITLE> 
</HEAD> 
<BODY> 
{MAIN} 
</BODY> 
</HTML>
```

recension.php

```
<?PHP 
require("../class.FastTemplate.php"); 
$tpl = new FastTemplate("../templates/"); 
$tpl->define(array(exempel=>"spel.tpl")); 

$tpl->assign(TITLE, "Detta är ett exempel"); 

$tpl->assign(MAIN, "Detta är min hemsida!"); 

$tpl->parse(MAIN, exempel); 
$tpl->Fastprint(); 

?>
```

Resultat när jag går till recension.php

```
<HTML> 
<HEAD> 
<Detta är ett exempel>{Detta är ett exempel}</Detta är ett exempel> 
</HEAD> 
<BODY> 
{Detta är min hemsida!} 
</BODY> 
</HTML>
```

FastTemplate-klassen ersätter alltså alla "title" den hittar med "Detta är ett exempel" när den endast skall ersätta "{title}" med den texten.

Någon sa att jag skulle byta ut 

```
				$template = ereg_replace("{$key}","$val","$template");
```

i Fasttemplate-klassen mot:

```
				$template = ereg_replace("\{$key\}","$val","$template");
```

vilket jag gjorde. Då fick jag istället ett par felmeddelanden:

```
Warning: Invalid content of \{\} in /home/matti/public_mk.st/spelarkivet/class.FastTemplate.php on line 199

Warning: Invalid content of \{\} in /home/matti/public_mk.st/spelarkivet/class.FastTemplate.php on line 199
ERROR: Nothing parsed, nothing printed
```

Har någon ett förslag på hur jag ska göra för att få det att fungera?

\[Redigerat av Matti den 09 aug 2001\]

Permalänk: https://www.webforum.nu/p/15970

## #2 — Matte, 2001-08-09T19:44Z

Det fungerar tydligen bättre för dig än vad det gjorde för mig, där fungerade ingenting. Mitt problem var att jag använder PHP4 medan Fasttemplate är byggt för PHP3. 
Om du använder PHP4 så finns det på <http://www.thewebmasters.net/php/FastTemplate.phtml>  beskrivet vilka ändringar som ska göras för PHP4. Orkar du inte göra dom själv kan du hämta hem <http://www.phpbuilder.com/columns/kendall20001122.zip>  där det finns med en class.FastTemplate.php med ändringarna gjorda.
Vidare är man i PHP4 tvungen att använda citationstecken vid arraytilldelning mm. Ex.

```
$tpl->define(array("exempel"=>"spel.tpl"));
$tpl->assign("TITLE", "Detta är ett exempel");
```

Permalänk: https://www.webforum.nu/p/320082

## #3 — Matti, 2001-08-09T19:55Z

Glömde säga att jag även testade med uppdateringen. Då får jag dessa felmeddelanden:

```

Warning: Invalid content of \{\} in ../class.FastTemplate.php on line 201

Warning: Invalid content of \{\} in ../class.FastTemplate.php on line 201

Warning: Invalid content of \{\} in ../class.FastTemplate.php on line 215
ERROR: Nothing parsed, nothing printed
```

(jag använder PHP4)

\--------------

Hur gjorde du när Fasttemplate inte fungerade? Hittade du något fungerade template-system?

Permalänk: https://www.webforum.nu/p/320083

## #4 — Chavez, 2001-08-09T21:14Z

Vad det gäller "fungerande templates-system" så är hela PHPPortalen ett bevis på att det fungerar. 

La upp exakt den filen som jag kör med där .. <http://www.phpportalen.net/exempel/class.FastTemplate.zip> 

Sen kan jag säga att jag inte använder några " alls. Det fungerar ändå.

Permalänk: https://www.webforum.nu/p/320084

## #5 — Matte, 2001-08-10T06:53Z

För min del får jag fellarm om jag inte använder citationstecken. Om jag tittat i manualen <http://www.php.net/manual/en/function.array.php>  så säger den också att om man indexerar i en array med en sträng så ska man använda citationstecken.

Permalänk: https://www.webforum.nu/p/320085

## #6 — Matti, 2001-08-10T11:37Z

<http://www.mk.st/temp/test.php> 

```

Warning: Invalid content of \{\} in /home/matti/public_mk.st/temp/klasser/class.FastTemplate.php on line 190

Warning: Invalid content of \{\} in /home/matti/public_mk.st/temp/klasser/class.FastTemplate.php on line 190

Warning: Invalid content of \{\} in /home/matti/public_mk.st/temp/klasser/class.FastTemplate.php on line 203
ERROR: Nothing parsed, nothing printed
```

Använde PHPportalens FastTemplate-klass.

```
189 $key = '{'."$key".'}';
190 $template = ereg_replace("$key","$val","$template");

203 $template = ereg_replace("{([A-Z0-9_]+)}","",$template);
```

Permalänk: https://www.webforum.nu/p/320086

## #7 — Chavez, 2001-08-10T12:07Z

Damn! 
Då har jag ingen aning om vad som kan vara fel. Använder exakt den klassen både lokalt (med IIS - w2k) och på servern (med Apache - Unix).

Permalänk: https://www.webforum.nu/p/320087

## #8 — Matte, 2001-08-10T19:01Z

Fick din kod att fungera hos mig både med "min" FastTemplate och Chavez FastTemplate (misstänker att de är indentiska). 
Detta under förutsättning att jag satte dit mina citationstecken, i annat fall visades fel/varningar före koden som fortfarande var rätt.
Om det kan ha någon betydelse kör jag Apache/Win95 lokalt och Apache/Linux på webservern. Båda med PHP installerat som Sapi-modul.

Permalänk: https://www.webforum.nu/p/320088

## #9 — Matti, 2001-08-11T15:23Z

Du har inte lust att posta koden du använde - med cituationstecken? 

Tack

Permalänk: https://www.webforum.nu/p/320089

## #10 — Matte, 2001-08-11T20:52Z

```
<?PHP 
require("FastTemplate/class.FastTemplate.php"); 
$tpl = new FastTemplate("templates/"); 
$tpl->define(array("exempel"=>"spel.tpl")); 
$tpl->assign("TITLE", "Detta är ett exempel"); 

$tpl->assign("MAIN", "Detta är min hemsida!"); 

$tpl->parse("MAIN", "exempel"); 
$tpl->Fastprint();
?>
```

Fast det är inte citationstecknen som är problemet för dig. Bristen på citationstecken ger först en rad varningar/fellarm om odefinierad konstant (där PHP också gör en kvalificerad gissning om vad man tänkt sig), men skriver efter det ut sidan som det är tänkt. Varningarna/fellarmen går att koppla bort, misstänker att det är vad Chavez m.fl. gjort.
Ditt problem ligger på ett annat plan. Har du gjort några ändringar i php.ini som kan tänkas påverka? Hur är PHP installerat exe-filen eller med dll-erna?

PS
Här är utfallet om jag **inte** använder citationstecken:

```
<br>
<b>Warning</b>:  Use of undefined constant exempel - assumed 'exempel' in <b>c:\.....\recension.php</b> on line <b>4</b><br>
<br>
<b>Warning</b>:  Use of undefined constant TITLE - assumed 'TITLE' in <b>c:\.....\recension.php</b> on line <b>5</b><br>
<br>
<b>Warning</b>:  Use of undefined constant MAIN - assumed 'MAIN' in <b>c:\.....\recension.php</b> on line <b>7</b><br>
<br>
<b>Warning</b>:  Use of undefined constant MAIN - assumed 'MAIN' in <b>c:\.....\recension.php</b> on line <b>9</b><br>
<HTML> 
<HEAD> 
<TITLE>Detta är ett exempel</TITLE> 
</HEAD> 
<BODY> 
Detta är min hemsida! 
</BODY> 
</HTML>
```

\[Redigerat av Matte den 11 aug 2001\]

Permalänk: https://www.webforum.nu/p/320090

## #11 — Matti, 2001-08-11T21:55Z

Jag fick aldrig Fasttemplate att fungera så jag testade [PHPLIB](http://www.phpbuilder.com/columns/david20000512.php3?page=1) och vet ni vad? Det fungerade perfekt.. :)

Tack för hjälpen båda två!

Permalänk: https://www.webforum.nu/p/320091

## #12 — Chavez, 2001-08-12T09:51Z

Tja, det verkar inte ha varit till någon större hjälp ändå ;-) 

Du får använda PHPLIB ett tag och sedan rapportera om hur det fungerar. Funderar på att gå över till det istället för FastTemplate. Främsta anledningen är att PHPLIB klarar dynamiska block i flera lagers "djup".

Permalänk: https://www.webforum.nu/p/320092

---

Tråden på webben: https://www.webforum.nu/amne/php/15970-problem-med-fasttemplate
