Hallo,

Ik heb in een database grote aantallen met teksten maar we zouden graag een stap verder gaan en de teksten die in de database personaliseren.

Bijvoorbeeld:
Beste %username% (zo staat het in de database)

Zou moeten displayen:
Beste Jos Verstraeten

De code om de teksten op te vragen ziet er zo uit:


include('mysqlsecure/include.php'); 


$result = mysql_query("SELECT * FROM nieuws order by id desc LIMIT 0,5");
while ($row = mysql_fetch_assoc($result)) {
echo "&".$row['auteur']."|".$row['datum']."|".$row['titel']."|".$row['bericht'];
}



Iemand een idee hoe dit moet?
Ik heb het proberen opzoeken op google maar vond niks en ik dacht dat ik dit ooit al eens had gezien en dat dat met % tekens was, maar ik kan me altijd vergissen ... Alvast bedankt!
Oh heel erg bedankt, en fijne feestdagen nog!
De oplossing van pepijn heeft hier vrij weinig mee te maken.

Maar je kan zoiets makkelijk doen met [php]str_replace[/php]:
<?php

// ...
$str = 'Hallo %username%';

$parsedStr = str_replace('%username%', $row['auteur'], $str);

echo $parsedStr; //> 'Hallo Jos Verstraeten' (als $row['auteur'] "Jos Verstraeten" is)
?>
Wouter, dat zeg ik, - en misschien kan je met preg_replace ook ver komen -
Maar je kan zoiets makkelijk doen met str_replace

Ontopic: Is het gelukt?
Maar waarom zou je een complexere methode aanraden als str_replace gewoon the job doet? Bovendien hebben smarty templates weinig te maken met een stukje string aanpassen.
ja ik had door pepijn al wat opgezocht over preg_replace en het werkte heel erg bedankt allemaal!

Reageren