Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zmiana ciagu znakow
Forum PHP.pl > Forum > Przedszkole
webspy
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 sad.gif
l0ud
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="eye.gif"/>',$string);
  6. $string = ereg_replace(':(]+)','<img src="sad.gif"/>',$string);
  7. ?>


Jak jeżeli ma zmieniać na podstawie tablic, musisz użyć pętli winksmiley.jpg
webdice
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 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. ?>
bartg
Wydaje mi się że niektóre ( ) [ ] trzeba poprzedzić slashem winksmiley.jpg

EDIT: Ale zapłon ;p
l0ud
Erm, webdicepl, nie wrzuciłbym kodu bez sprawdzenia, nie pisząc o tym...

[edit] Zwracam Ci jednak honor winksmiley.jpg Przeglądarka albo forum z nieznanych mi przyczyn usunęło slashe, ale już poprawiłem smile.gif
bartg
l0ud:
Kod
Warning: ereg_replace() [function.ereg-replace]: REG_BADRPT in G:\!xampp\htdocs\konta\test.php on line 31


Kod działający w 100%:
  1. <?php
  2. $string = ':)))) :(((( :]]] :]';
  3.  
  4. $string = preg_replace('!:()+)!','<img src="smile.gif"/>',$string);
  5. $string = preg_replace('!:((+)!','<img src="sad.gif"/>',$string);
  6. $string = preg_replace('!:(]+)!','<img src="eye.gif"/>',$string);
  7. $string = preg_replace('!:(]+)!','<img src="eye.gif"/>',$string);
  8. ?>


EDIT: Sorry ale jak sprawdzałem kod to już klikłem nowy post i twojego edita nie widziałem winksmiley.jpg
l0ud
bartg, swoją drogą Ci również slashe ucięło winksmiley.jpg Może warto by było to gdzieś zgłosić, bo to chyba jakiś błąd forum jest?
webspy
Dzięki, wszystko działa jak powinno smile.gif pozdrawiam.
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.