Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_replace - ułożenie wzorca
Darek M.
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.05.2013

Ostrzeżenie: (0%)
-----


Witam, potrzebuje ułożenia wzorca, aby z takiego tekstu:
Kod
{FF0000}test

zamieniał na:
Kod
<font color="#FF0000">test</font>

Przy większej ilości:
Kod
{FF0000}test{0000FF}drugi

powinno to wyglądać w ten sposób:
Kod
<font color="#FF0000">test<font color="#0000FF">drugi</font></font>

LUB (moim zdaniem trudniejsza wersja)
Kod
<font color="#FF0000">test</font><font color="#0000FF">drugi</font>


Korzystając z innego gotowego wzorca, który zamieniał {test} na wartość tablicy $Tekst['test'], przerobiłem go w ten sposób:
  1. $Tekst['description'] .= preg_replace('#\{([A-Fa-f0-9]*?)\}#', '<font color="#\1">', $opis['opis']);

jednak nie wiem, w jaki sposób tekst za klamrą zamykającą przerobić tak, aby na końcu wejścia dodać znacznik zamykający </font>.

Z góry dziękuję za pomoc, niestety wyrażenia regularne mnie przerastają.
Go to the top of the page
+Quote Post
amii
post
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Może w ten deseń pisane z palca bez testów:
  1. preg_replace('#\{([A-Fa-f0-9]{1,6})\}(\S+)#', '<font color="#\1">\2</font>', $opis['opis']);


Ten post edytował amii 10.08.2013, 17:15:57
Go to the top of the page
+Quote Post
Darek M.
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.05.2013

Ostrzeżenie: (0%)
-----


"Prawie" działa, problemem są spacje, po których tekst nie jest kolorowany do następnego "markera":

(IMG:http://screenshoot.me/3dGhoO.png)
dla
(IMG:http://screenshoot.me/0GITg4.png)

Ten post edytował Darek M. 10.08.2013, 19:08:51
Go to the top of the page
+Quote Post
WiruSSS
post
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 7
Dołączył: 3.02.2007

Ostrzeżenie: (0%)
-----


  1. preg_replace('#\{([a-fA-F0-9]{6})\}([^{}]+)#', '<font color="#\1">\2</font>', $tekst)


Ten post edytował WiruSSS 11.08.2013, 09:41:45
Go to the top of the page
+Quote Post
Darek M.
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.05.2013

Ostrzeżenie: (0%)
-----


Działa, dziękuję bardzo (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 19:35