Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Funkcja] Emotikony, funkcja php 4 i 5
Rafał 40x
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 2.05.2006

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


Kod:

  1. <?php
  2.  
  3. function emots ( $text ) {
  4.  
  5. if ( ! is_dir ( 'emots' )) {
  6.  
  7. echo "Brak katalogu z emotikonami.";
  8.  
  9. } else {
  10.  
  11. $_POST['text'] = $text;
  12.  
  13. $text = str_replace (":D", "<img src='emots/d.gif'>", $text);
  14. $text = str_replace (":)", "<img src='emots/u.gif'>", $text);
  15. $text = str_replace (":/", "<img src='emots/k.gif'>", $text);
  16.  
  17. return $text;
  18.  
  19. }
  20. }
  21.  
  22. ?>


Przykład użycia:

(Przed użyciem skryptu należy stworzyć katalog emots.)

  1. <?php
  2.  
  3. echo '<form action="index.php" method="post">';
  4. echo '<textarea name="text"></textarea><br />';
  5. echo '<input type="submit"></form>';
  6.  
  7. echo emots ( $text ); 
  8.  
  9. ?>


Wpisujemy w textarea np.:
Kod
To jest pewien text :D.

Zamiast :D widzimy emota.



Piszcie co dodać, co zmienić itp.

Pozdrawiam,
Rafał.

Ten post edytował Rafał 40x 2.05.2006, 12:09:24
Go to the top of the page
+Quote Post
Spirit86
post
Post #2





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


zacznijmy od tego, że w funkcji emots powinnieneś zwracać tekst, nie drukować. Hmm, pozatym ta funkcja nic w sobie nie ma (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) . Proponuję stworzenie klasy, pobieranie emotów z bazy danych, używanie zastad W3 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
tiraeth
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


To jest jakiś żart?

emots.txt
Kod
:D|!|bigmouth.gif
:)|!|smile.gif
:-)|!|smile.gif
:(|!|sad.gif
:-(|!|sad.gif

  1. <?php
  2. function emots ( $inputString )
  3. {
  4.  $emots = file('emots.txt');
  5.  for ( $i=0; $i<count($emots); $i++ )
  6.  {
  7. list($code, $emot) = explode("|!|", $emots[$i]);
  8. $inputString = str_replace($code, "<img src=\"emots/$emot\" border=\"0\" alt=\"$emot\" />", $inputString);
  9.  }
  10.  return $inputString;
  11. }
  12. ?>

Chyba ten sam efekt a bardziej elastyczne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Rafał 40x
post
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 2.05.2006

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


Nie, to nie jest żart (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Komuś się może przydać. A widzisz już 2 funkcje takie na forum są, w dodatku każda inna (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam.
Go to the top of the page
+Quote Post
tiraeth
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Gdyby każdy miał umieszczać taką prostą funkcję (i w dodatku niepotrzebną, bo istnieją rozbudowane funkcje do dynamicznej zmiany kodu na emotki pobierając informacje z pliku txt) to forum to zaroiłoby się od wielu niepotrzebnych śmieci. Wystarczy w wyszukiwarce forum wpisać "emotikony" i znajdzie się pare stron z tematami... tak na przyszłość
Go to the top of the page
+Quote Post
NuLL
post
Post #6





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Przenosze na przedszkole jak przyklad - bo na nic wiecej to sie nie nadaje.
Go to the top of the page
+Quote Post
matrach
post
Post #7





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 17.04.2006

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


a) Ja zamiast używać wielu str_replace, polecam użyć funkcji strtr() która zamienia klucze tablicy na jej wartośći.
Oczywiście jeśli ma być w pętli to lepiej zostać przy str_replace.
(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) Pomyśł nad jakimś zabezpieczeniem, aby nie zamieniało użytkownikowi przypadkiem tekstu na emikona jak w tym punkcie: "B + )" dał nieporządanego emikona.
c) Dobrym pomysłem jest też aby emikony musiały być otoczone spacją.

d) Co do źródła pobieranie emikonów zgadzam sie z poprzednikami, powinny być w pliku lub bazie
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: 18.09.2025 - 12:27