Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] system komentarzy + emotikony
wiciu010
post 29.08.2008, 17:14:52
Post #1





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 29.04.2007

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


Piszę własny system komentarzy i wszystko ładnie działa tylko kompletnie nie mam pomysłu jak zrobić żeby wyświetlały sie emotikony zamiast np. smile.gif mam przygotowane odpowiednie grafiki
Go to the top of the page
+Quote Post
szopen
post 29.08.2008, 17:21:42
Post #2





Grupa: Zarejestrowani
Postów: 60
Pomógł: 5
Dołączył: 28.08.2008

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


Dla przykładu: http://pl2.php.net/manual/en/function.strtr.php

  1. <?php
  2. $text = strtr($text, ':)' => '<img src="smile.gif" />');
  3. ?>
Go to the top of the page
+Quote Post
Skie
post 29.08.2008, 17:25:12
Post #3





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


Bardzo prosto. Treść commenta przed wysłaniem (zapisaniem do bazy) musisz "przerzucić" przez funkcję np.

Kod
$tresc = add_emotes($tresc)


A w takiej funkcji (w tym przykladzie add_emotes) zamieniać tekst w emotki w nastepujacy sposob:

  1. <?php
  2. function add_emotes($text) {
  3. $text = str_replace(":D","<img src=usmiech.gif>", $text);
  4. return $text;
  5. }
  6. ?>


Oczywiście musiałbyś tą funkcję rozbudować, żeby wszystkie emotki uwzględniała, pozmieniać ścieżki do emotek itd.
Jeżeli wcześnej treść commenta filtrujesz jakas inna funkcja (kasowanie tagow html, lamanie linii, cenzurowanie slow itd.) to tam mozesz dorzucic te zamiany tesktu w emotki zamiast tworzyc nowa funkcje.


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
no_face
post 29.08.2008, 18:11:21
Post #4





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Lepiej byloby przezucic przez funkcje dopiero po wyciagniecu z bazy tresci komentarza.
Go to the top of the page
+Quote Post
wiciu010
post 29.08.2008, 18:20:17
Post #5





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 29.04.2007

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


Cytat(no_face @ 29.08.2008, 19:11:21 ) *
Lepiej byloby przezucic przez fun
1f52
kcje dopiero po wyciagniecu z bazy tresci komentarza.


Dlaczego?
Go to the top of the page
+Quote Post
Skie
post 29.08.2008, 18:22:20
Post #6





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


Cytat(no_face @ 29.08.2008, 19:11:21 ) *
Lepiej byloby przezucic przez funkcje dopiero po wyciagniecu z bazy tresci komentarza.


W sumie tak też można.


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
no_face
post 29.08.2008, 18:35:36
Post #7





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Cytat(wiciu010 @ 29.08.2008, 19:20:17 ) *
Dlaczego?

By nie przechowywac zbednego kodu w bazie danych.
Go to the top of the page
+Quote Post
Mlodycompany
post 29.08.2008, 21:39:49
Post #8





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


wyciagasz sobie tekst z bazy i przepuszczas go przez funkcje emot($str);

  1. <?php
  2. function emot($str){
  3.  
  4. $emoty = array(':)' => 'usmiech.jpg', itp);
  5.  
  6. foreach($empty as $z => $na){
  7.  
  8. $str = str_replace($z, $na, $str);
  9.  
  10. }
  11.  
  12. return($str);
  13.  
  14. }
  15.  
  16. $str = emot($str);
  17.  
  18. echo $str;
  19. ?>
Go to the top of the page
+Quote Post
szopen
post 30.08.2008, 12:43:31
Post #9





Grupa: Zarejestrowani
Postów: 60
Pomógł: 5
Dołączył: 28.08.2008

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


Cytat(Mlodycompany @ 29.08.2008, 22:39:49 ) *
  1. <?php
  2. foreach($empty as $z => $na){
  3. $str = str_replace($z, $na, $str);
  4. }
  5. ?>

Ej... tak się nie robi raczej winksmiley.jpg Nie testowałem, ale to powinno działać wydajniej:
  1. <?php
  2. $z  = array('a','b', ... );
  3. $na = array('1','2', ... );
  4. $str = str_replace($z, $na, $str);
  5. ?>
Go to the top of the page
+Quote Post
Mlodycompany
post 30.08.2008, 22:04:45
Post #10





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


jak dla mnie nie ma różnicy:P
Go to the top of the page
+Quote Post
szopen
post 30.08.2008, 22:15:01
Post #11





Grupa: Zarejestrowani
Postów: 60
Pomógł: 5
Dołączył: 28.08.2008

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


Nie widzisz różnicy między jednokrotnym wywołaniem funkcji a n-krotnym jej wywoływaniem? Zrób benchmark i podziel się wynikami 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: 14.08.2025 - 12:51