Avatar billede phpbegynder2004 Nybegynder
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!
Avatar billede zynzz Praktikant
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);
Avatar billede zynzz Praktikant
15. november 2006 - 17:40 #2
ups

str_replace('[dip]','<font style her>',$teksten);
str_replace('[/dip]','</font>',$teksten);
Avatar billede udvikler Nybegynder
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;
?>
Avatar billede challenge Praktikant
15. november 2006 - 17:44 #4
Kig engang på php.net... Dér står det hele

http://dk2.php.net/manual/en/function.str-replace.php
Avatar billede phpbegynder2004 Nybegynder
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 &nbsp;
Avatar billede zynzz Praktikant
15. november 2006 - 18:01 #6
Måske dette, jeg er dog ikke sikker..., men hvad skal du bruge det til?:

str_replace(' ','&nbsp;',$teksten);
Avatar billede phpbegynder2004 Nybegynder
15. november 2006 - 18:01 #7
... og så burde det vel være \\1 i stedet for dsds ? ;)
Avatar billede phpbegynder2004 Nybegynder
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 &nbsp;
Avatar billede coderdk Praktikant
15. november 2006 - 18:15 #9
Prøv:

$tekst = preg_replace("#\[dip\](.*)\[/dip\]#e","'<span style=\"font-family: verdana;\">'.str_replace(' ','&nbsp','\\1').'</span>'", $tekst);
Avatar billede coderdk Praktikant
15. november 2006 - 18:17 #10
Alternativt:

$tekst = preg_replace("#\[dip\](.*)\[/dip\]#","<pre style=\"display: inline; font-family: verdana;\">\\1</pre>", $tekst);
Avatar billede phpbegynder2004 Nybegynder
15. november 2006 - 18:23 #11
Nice man!! Det virker sgu!
Læg et svar!
Avatar billede udvikler Nybegynder
15. november 2006 - 19:09 #12
Hvem? :-)
Avatar billede phpbegynder2004 Nybegynder
15. november 2006 - 19:37 #13
Tak for hjælpen til alle, men coderdk havde det jeg havde brug for.
Avatar billede coderdk Praktikant
15. november 2006 - 21:08 #14
(c:
Avatar billede phpbegynder2004 Nybegynder
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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester