Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] zmiana ciagu znakow
webspy
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Wiem, że tych tematów jest dużo ale nie mogę znaleźć tego odpowiedniego dla mnie:

Kod
$post = str_replace(array(
                ':)',
                ':]',
                ':('    
        ), array(
                '<img src="smile.gif"/>',
                '<img src="eye.gif"/>',
                '<img src="sad.gif"/>'  
        ), $post);


Mam taki przykład kodu, i chcę aby zmieniało taki znak ":)" tak samo jak ciag znakow ":)))))))))))"
Wynikiem byłaby odpowiednia buzka.
Wiem tyle, że trzeba użyć takich znaków jak ?^* tylko nie wiem jak to zastosować do tego kodu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(l0ud @ 12.03.2008, 21:56:33 ) *
Użyj ereg_replace() z wyrażeniami regularnymi

  1. <?php
  2. $string = ':)))) :(((( :]]] :]';
  3.  
  4. $string = ereg_replace(':()+)','<img src="smile.gif"/>',$string);
  5. $string = ereg_replace(':((+)','<img src="sad.gif"/>',$string);
  6. $string = ereg_replace(':(]+)','<img src="eye.gif"/>',$string);
  7. ?>


Jak jeżeli ma zmieniać na podstawie tablic, musisz użyć pętli (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


~l0ud Twój kod nie zadziała. Zrób tak:

  1. <?php
  2. $string = preg_replace ('#:){1,}#', '<img src="smile.gif"/>', $string);
  3. $string = preg_replace ('#:]{1,}#', '<img src="sad.gif"/>',  $string);
  4. $string = preg_replace ('#:({1,}#', '<img src="eye.gif"/>',  $string);
  5. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 15.10.2025 - 11:54