15. november 2006 - 17:19
Der er
14 kommentarer og 1 løsning
Skift skrifttype ved tekst med klammer
Hej eksperter, Hvordan kan jeg ændre skrifttypen og konverter spaces til i en del af en streng? F.eks. $str= "Dette er et lille eksempel [dip] jeg har en anden skrifttype[/dip]". Det skal kun være teksten mellem [dip] [/dip] der får en anden. Som sagt skal spaces også konverterestil Er det muligt? Er godt klar over, at der sandsynligvis skal bruges noget preg_replace, men er ikke helt sikker på hvordan man gør. På forhånd tak for hjælpen!
Annonceindlæg fra Barco
15. november 2006 - 17:40
#1
Kan du ikke bare bruge str_replace()? fx.: str_replace('[dip]','<font style her>',$teksten); str_replace('[/dip]','</font style her>',$teksten);
15. november 2006 - 17:40
#2
ups str_replace('[dip]','<font style her>',$teksten); str_replace('[/dip]','</font>',$teksten);
15. november 2006 - 17:41
#3
<?php $tekst = "denne tekst [dip]har[/dip] skiftet font"; $tekst = preg_replace("#\[dip\](.*)\[/dip\]#","<span style=\"font-family: verdana;\">dsds</span>", $tekst); echo $tekst; ?>
15. november 2006 - 17:44
#4
15. november 2006 - 17:57
#5
Okay tak. Men hvad med konverteringen af spaces? Det skal kun være mellem dip at mellemrum ændres til
15. november 2006 - 18:01
#6
Måske dette, jeg er dog ikke sikker..., men hvad skal du bruge det til?: str_replace(' ',' ',$teksten);
15. november 2006 - 18:01
#7
... og så burde det vel være \\1 i stedet for dsds ? ;)
15. november 2006 - 18:06
#8
Nej, det skal kun være mellem [dip]. Det er lidt svært at forklare. Tror bare i bliver mere rundtossede af det, men det skal være lidt ala WYSIWYG. Det tekst man skriver ind i tekstfeltet skal komme ud på samme måde. Og bokstaverne skal fylde lige meget. Altså et m skal fylde ligeså meget som et i. Og det gør det også i Lucida Console skrifttypen. Desuden skal folks mellemrum ikke fjernes men blive. Derfor skal space konverteres til
15. november 2006 - 18:15
#9
Prøv: $tekst = preg_replace("#\[dip\](.*)\[/dip\]#e","'<span style=\"font-family: verdana;\">'.str_replace(' ',' ','\\1').'</span>'", $tekst);
15. november 2006 - 18:17
#10
Alternativt: $tekst = preg_replace("#\[dip\](.*)\[/dip\]#","<pre style=\"display: inline; font-family: verdana;\">\\1</pre>", $tekst);
15. november 2006 - 18:23
#11
Nice man!! Det virker sgu! Læg et svar!
15. november 2006 - 19:09
#12
Hvem? :-)
15. november 2006 - 19:37
#13
Tak for hjælpen til alle, men coderdk havde det jeg havde brug for.
15. november 2006 - 21:08
#14
(c:
20. november 2006 - 23:04
#15
Tak for sidst. ;)
Her er en lille opfølgning på spørgsmålet:
http://www.eksperten.dk/spm/746072 Åbent hus: Alle er velkomne til at kigge forbi.
Vi tilbyder markedets bedste kurser inden for webudvikling