Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenie regularne
Forum PHP.pl > Forum > PHP
Strzałek
no więc mam chęć wzbogacenia funkcji od emontek żaby zmieniała ona : )) na : ) : )
(spację dałem żeby ipb nie zmieniło tongue.gif) a później : ) i : ) zmieniam na 2 emonty czyli smile.gif smile.gif

Domyślam że trzeba to zrobić w wyrażeniach regularnych jednak nie mam żadnego pomysłu sad.gif
Ive
  1. <?
  2. $text = preg_replace(&#092;"#:))#is\", \":) :)\", $text); // nie jestem pewien czy to zadziala bo w pregach ogolnie slaby jestem tongue.gif ale moze cos na ten wzór tongue.gif
  3. ?>
hwao
@Ive: dobiles mnie :-) lepiej do takiego czegos uzyc str_replace i mu podobnych

Co do problemu to ma on byc bardziej 'dynamiczny' czy tylko chodzi o ten jednen usiemiech : )
Strzałek
no właśnie nie napisałem. Sorry. Chodzi o to że jak ktoś napisze : ))) to mu zmieni na 3 emonty a jak : )))))))))) to na 10 emontek

aha i chciał bym to samo zastosować do : ( oraz : / etc. Żeby było to łatwe do edycji winksmiley.jpg
FiDO
  1. <?php
  2.  
  3. $text = &#092;"sdf d :)))))) sdfsd fsdf :))// :(((() gfhgfhd ://)\";
  4.  
  5. // dopuszczone buźki (bez dwukropka z przodu)
  6. $smiles = &#092;"()/\";
  7.  
  8.         '#:((['. preg_quote($smiles) .'])2+)#e', 
  9.         'rtrim(str_repeat(\":2 \", strlen(\"1\")))', 
  10.         $text
  11.     );
  12.  
  13. ?>

Jesli nie potrzebujesz rozdzielac wynikowych buziek spacja, mozesz drugi parametr preg_replace skrocic do:
'str_repeat(":\\2", strlen("\\1"))'
Strzałek
no superowo cool.gif Bardzo dziękuję guitar.gif
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.