Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Funkcja] Emotikony
Forum PHP.pl > Forum > Przedszkole
Rafał 40x
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ł.
Spirit86
zacznijmy od tego, że w funkcji emots powinnieneś zwracać tekst, nie drukować. Hmm, pozatym ta funkcja nic w sobie nie ma tongue.gif. Proponuję stworzenie klasy, pobieranie emotów z bazy danych, używanie zastad W3 tongue.gif
tiraeth
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 smile.gif
Rafał 40x
Nie, to nie jest żart smile.gif. Komuś się może przydać. A widzisz już 2 funkcje takie na forum są, w dodatku każda inna winksmiley.jpg

Pozdrawiam.
tiraeth
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ść
NuLL
Przenosze na przedszkole jak przyklad - bo na nic wiecej to sie nie nadaje.
matrach
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.
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.