Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Övriga serverspråk > PHP

Problem med funktionen "str_replace"

Fredriik
Fredriik

Gradering

#19955

Hej alla! :)

Jag håller på att skapa en "template"-funktion som kommer att skriva ut innehållet från .tpl-filer till sidan du besöker.
Till exemel om du besöker index, så läser den från filen "index.tpl", och likadant med andra filer. (Om inte filen existerar så skriver den ut felmeddelande => error.tpl)

Faktiskt så har jag kommit till ett problem..
Jag vill ersätta "variablar" i template-filerna via php-funktionen "str_replace", men det fungerar inte som det ska.

Variablarna ser ut såhär i template-filerna: {$VARIABEL}
Och så ska denna funktionen ersätta det med vad jag skriver in..

function replace($var, $content) {
    $this->template = str_replace("{$".$var."}", $content, $this->template);
}

Felmeddelandet den ger mig är: Parse error: syntax error, unexpected '"', expecting T_VARIABLE or '$' in ****** on line 77

 

Skulle varit väldigt tacksam om man fick lite hjälp. (:
/Fredrik

ID: #19955 | Skapades: 2010-06-21 00:19:56 | Tråden har 3 svar och har lästs 264 gånger.

voigtan
voigtan

Gradering

#19956

Vad var felet? Du har satt tråden som löst så det hade varit trevligt om du delar med dig dina lösningar också.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19956 | Skapades: 2010-06-21 06:46:12

Fredriik
Fredriik

Gradering

#19958

Nej problemet är tyvärr inte löst, men orkar inte lägga ner tid på ett sådant gammalt projekt..

No solution found, sorry.. ;P

ID: #19958 | Skapades: 2010-06-21 20:48:14

voigtan
voigtan

Gradering

#19960

Citerar Fredriik:

Nej problemet är tyvärr inte löst, men orkar inte lägga ner tid på ett sådant gammalt projekt..

No solution found, sorry.. ;P

 

Orkar lägga ner tid verkar du ju göra eftersom du frågar i en annan tråd som inte har med detta att göra ;)

men jag gissar på att vad du gör för fel är att använda dig av $ i en php sträng, om det är $ du vill matchar på så få du bryta ut den \$, gjorde ett exempel:

<?
$subject = "<head>{\$head}</head>";

function replace($var, $content, $r) {
    return str_replace("{\$".$var."}", $content, $r);
}

echo(replace("head", "ett test", $subject)); // "<head>ett test</head>"
?>
Skulle gissa på att det fungera på samma sätt för dig i din klass:

...
function replace($var, $content) {
    $this->template = str_replace("{\$".$var."}", $content, $this->template);
}
...
Tog även bort "Tråden som löst" då andra också kan kanske hjälpa dig.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 21 juni 2010. Läs tidigare inlägg.
ID: #19960 | Skapades: 2010-06-21 22:41:17
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy