Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z funkcją str_replace();, Raz działa, a raz nie...
quex
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 11.02.2004

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


Witam szanownych forumowiczów.
Mam problem z fukncją zamieniającą str_replace();. Na początek przedstawie kawałek kodu:
  1. <?
  2. ...
  3. $text = str_replace (&#092;";X\", \" <img src=\"img/emotikony/icon_mad.gif\" border=\"0\" alt=\";X\">\", $text);  
  4. ...
  5. ?>


I teraz pojawia się problem, bo jak wkleje np. "sdsds&amp;X", to wstawi mi tam emota. Oczywiście można to obejść dając:
  1. <?
  2. ...
  3. $text = str_replace (&#092;"_;X_\", \" <img src=\"img/emotikony/icon_mad.gif\" border=\"0\" alt=\";X\">\", $text);  
  4. ...
  5. ?>

(_ to spacja)

ale czy nie ma innego sposobu?

Najlepiej, gdyby nie zamieniało emotikonek zawartych pomiędzy
Kod
[CODE] i
[/CODE]

Proszę o pomoc - quex.

----------------------------- ROZWIĄZANIE -----------------------------
Zrobilem inaczej.
Emotikony teraz daje w taki [ i ] np. [(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ].
Uzylem funkcji preg_replace_callback();
  1. <?
  2. $text = preg_replace_callback(&#092;"#[(.*?)]#si\", \"EmoticonsNoCode\", $text); 
  3. ?>

i stworzylem funkcje EmoticonsNoCode.
W funkcji mam normalne zamienianie Emotikon np.
  1. <?
  2. $text = str_replace (&#092;":)\", \" <img src=\"img/emotikony/icon_smile.gif\" border=\"0\" alt=\":)\">\", $text); 
  3. ?>


Rozwiązanie podaje, jakby czasem ktoś potrzebował.

Ten post edytował quex 2.05.2005, 13:26:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SHiP
post
Post #2





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


Najlepiej to zrobić tak...

masz kody zawarte pomiędzy [code] [php] itp. Aby uniknąć ich wielokrotnego przetwarzania(co jest bardzo czasochłonne) stworz prosta klase/funckje cachująca te bloki to jakiego katalogu np BBcode/php BBcode/code

Teraz robisz tak zamieniasz kod na np.. pomiedzy [code ] [ /code ] na np [code=BBcode/php/mojtajnyplikzwygenerowanymkodem.php]

Nastepnie przerzucasz przez parser pozostaly text zamieniajac emotki a na koncu podmieniasz juz wygenerowany kod z pliku
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 09:37