Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_replace - ułożenie wzorca
Darek M.
post 10.08.2013, 16:33:34
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 10.08.2013, 17:13:44
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


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
Darek M.
post 10.08.2013, 18:36:08
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":


dla


Ten post edytował Darek M. 10.08.2013, 19:08:51
Go to the top of the page
+Quote Post
WiruSSS
post 11.08.2013, 09:41:26
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 11.08.2013, 12:02:05
Post #5





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

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


Działa, dziękuję bardzo smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 21:40