pickyMedlem sedan mars 200618 inlägg Har nyligen börjat leka med php och har en liten fråga. Ska försöka göra ett enkelt exmpel:
Har en php sida som skriver ut innehållet ur en mysqldb med <?php echo $text;?>.
Om nu $text innehåller vanlig htmlkod så fungerar det ju bra, men om jag vill ha en phpkod i det som hämtas från $text så fungerar det inget vidare.
Tex om jag vill att $text innehåller lite html med en länk som tex <a href="/?lang='.$lang.'&id=3">Link</a>. Det fungerar inte att sätta <?php echo '<a href="/?lang='.$lang.'&id=3">Link</a>'; ?> i själva $text.
Någon som har bra tips på lösning?
svar
<?php echo '<a href="/?lang=\'.$lang.\'&id=3">Link</a>'; ?>
spangoMedlem sedan juni 20008 205 inlägg Du kan använda eval, men eval är ondskefullt och rekommenderas inte (kan leda till fel som är helt hopplösa att felsöka). Normalt finns det ett bättre sätt att lösa det på. I ditt fall skulle man t.ex. kunna tänka sig att du har en sträng som typ <a href="/?lang=%s&id=3">Link</a>, och sen stoppar in lämpligt värde med sprintf:
$text = '<a href="/?lang=%s&id=3">Link</a>';
echo sprintf($text, $lang);
pickyMedlem sedan mars 200618 inlägg
spango skrev:
Du kan använda ...
Tusen tack, fungerade perfekt!
Är det någon egentlig nackdel att använda detta kommando i php filen, dvs även när den hämtar $text som inte innehåller %s? Det vore enkelt att bara ersätta 'echo $text' med detta på ett ställe i index.php. Kan tänka mig att det kanske tar lite mer processorkraft.
....
Skaffa dig en templatemotor. Den enklaste att använda som jag känner till är bTemplate. http://www.massassi.com/bTemplate/index.php?page=home
pickyMedlem sedan mars 200618 inlägg
olarsson skrev:
Skaffa dig en templatemotor. Den enklaste att använda som jag känner till är bTemplate. http://www.massassi.com/bTemplate/index.php?page=home
Kanske får titta på den, tänkte iof göra en enkel sida där sidor väldigt sällan läggs till, max en sida per år, så just nu känns det som att det fungerar som det är, har gjort en liten back-end i php där man kan lägga till sidor och redigera med fckeditor, ville lära mig lite innan jag bara tar någon templatemotor.
Lite OT kanske, men vad är skillnaden på en templatemotor och tex joomla? Har jobbat lite med joomla tidigare och det är riktigt smidigt.
spangoMedlem sedan juni 20008 205 inlägg
picky skrev:
Är det någon egentlig nackdel att använda detta kommando i php filen, dvs även när den hämtar $text som inte innehåller %s?
Du menar sprintf? Ja, visst blir det lite långsammare, men kostnaden bör vara rätt liten i sammanhanget. Glömde f.ö. att echo sprintf($text, $lang) är rätt menlöst att säga, man kan anropa funktionen printf som skriver ut direkt (utan omvägen via echo): printf($text, $lang)