Platzhalter ersetzen

Daniel Steffen novinet

Angesehenes Mitglied
Hi Leute,

sagtmal, wie kann ich einen beliebigen Stringtext durchsuchen und die Platzhalter durch Variablen ersetzen?

Platzhalter soll z.b. folgende Syntax haben <(platzhalter)> und soll später durch $substring->platzhalter ersetzt werden.

Das Problem ist, dass das Script einfach nach allen Platzhaltern suchen soll, ohne dass ich ihm sage wie die heissen - sonst könnt ich gleich ein str_replace machen.

Gruß, Daniel
 
Vielleicht meinst du sowas:

CODE
class dummy {
var $name = 'test';
var $autor = 'mir';


function replace($s) {
return preg_replace_callback('/<\(([^\)]+)\)>/is',array($this, '_reg_rep'),$s);
}

function _reg_rep($found) {
$varname = $found[1];
return $this->$varname;
}
}

$text = 'Hallo, das ist ein <(name)> von <(autor)>';

$dummy = new dummy();
echo $dummy->replace($text);



Allerding würde ich da vorsichtig sein, wenn die Platzhalter von Usern eingegeben werden können...
 
Es gibt bereits ein Script welches genau das macht:

Es heisst P.E.T.: http://pet.andreas-demmer.de/

Im PHP-Code kannst du beliebige Variablen zuweisen, wie z.B. greeting ..
CODE
<?php
$pet = new pet('website.html');
$pet->greeting = 'Hello World!';
$pet->name = 'Hansruedi';
echo $pet->fetch();
?>



Und das Template sieht so aus:


CODE
<h1>{greeting}</h1>
Hello {name}, how are you?

 
Template Systeme gibt es tausende... das verbreiteste ist smarty: http://smarty.php.net

Nur muss das was Daniel da sucht nicht unbedingt so umfangreich zu sein. Ausserdem kann man so auch Benutzereingaben verarbeiten
 
Zurück
Oben