Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: str_replace jak zrobić
Forum PHP.pl > Forum > PHP
Mayger
Mam taki problem chce na swojej stronie www.lool.pl zrobić w komentarzach emotikony czyli zamiast : D wyświetla się obrazek albo cenzura zamist jakiś tam słów gwiazdki. Prosze pomóżcie mi próbowałem już z jp zapodać ale nie działa z paru innych skryptów też i nic. Powiedzcie co mam dodać do swojego configa żeby się zamieniało tongue.gif
dtb
MYSQL
~~~~
tabela emot:
nazwa | obraz
tabela cenzor:
nazwa

php
~~~~
  1. <?php
  2. $text = 'tekst ktory ma przejść filtracje';
  3. $q = mysql_query ('SELECT * FROM emot');
  4. while ($r = mysql_fetch_array ($q))
  5. {
  6. $text = str_replace ($r['nazwa'], '<img src="emots/'.$r['obraz'].'" />', $text);
  7. }
  8. $q = mysql_query ('SELECT * FROM cenzor');
  9. while ($r = mysql_fetch_array ($q))
  10. {
  11. // np. jezeli slowo abcd jest w bazie jako przeklenstwo, to wyswietli a***
  12. $text = str_replace ($r['nazwa'], str_pad ($r['nazwa'][0], strlen ($r['nazwa']), '*'), $text);
  13. }
  14. ?>
Mayger
a można to zrobić bez mysql bo tak to bede tabele musiał robić itp ;] plz jakoś normalnie dajcie
ActivePlayer
  1. <?php
  2.  
  3. echo str_replace('biggrin.gif', '<img src="happy.gif">', 'biggrin.gif:D:D');
  4.  
  5. ?>

do tego mozna jeszcze arraye zaprzęgnąć
więcej poczytasz na pl.php.net/str_replace a dokladniej przykład:
  1. <?php
  2.  
  3. $phrase = "You should eat fruits, vegetables, and fiber every day.";
  4. $healthy = array("fruits", "vegetables", "fiber");
  5. $yummy = array("pizza", "beer", "ice cream");
  6.  
  7. ?>
dtb
emot.txt:
smile.gif||slime.gif
:/||mina.gif
(...)
cenzor.txt:
abcd
xxxx
(...)

  1. <?php
  2. $text = 'tekst ktory ma przejść filtracje';
  3. $uchwyt = fopen('emot.txt', 'r');
  4. while (!feof ($uchwyt) AND $r = fgets($uchwyt, 64) AND $r = explode('||', $r))
  5. {
  6. $text = str_replace ($r[0], '<img src="emots/'.$r[1].'" />', $text);
  7. }
  8. $uchwyt = fopen('cenzor.txt', 'r');
  9. while (!feof ($uchwyt) AND $r = fgets($uchwyt, 64))
  10. {
  11. // np. jezeli slowo abcd jest w bazie jako przeklenstwo, to wyswietli a***
  12. $text = str_replace ($r, str_pad ($r[0], strlen ($r), '*'), $text);
  13. }
  14. ?>
Vogel
tka naprawde to cenzor powinien iśc przez wyrażenia regularne
Mayger
dtb dzięki ale jeszcze jedno pytanie jak jest
Kod
$text = 'text który ma przejść filtracje'
to jak zrobić żeby przefiltrowywało całą strone tongue.gif
tiraeth
  1. <?php
  2.  
  3. function callback($buffer)
  4. {
  5. // tutaj cenzurujemy $buffer i zwracamy (return)
  6. }
  7.  
  8. ob_start("callback");
  9. ?>
  10.  
  11. <html>
  12. <body>
  13. <p>Kurcze pieczone!!</p>
  14. </body>
  15. </html>
  16.  
  17. <?php
  18. ?> 
Mayger
Niech nareszcie ktoś poda kod który mam wstawić w swoim configu z jednym przykładem i bedzie on filtrował całą treść strony nie tekst który ja mam wpisać;]
Prosze;]
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.