Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kasowanie powtarzających się znaków
Forum PHP.pl > Forum > PHP
MitS
Witam serdecznie,

mam małe pytanie. Otóż nie wiem jak zrobić funkcje, która skasuje mi powtarzające się znaki (stojące obok siebie) w stringu i pozostawi tylko jeden.
tzn. mamy sobie string:

Kod
$string = "asddf   dsadasdasddf as234324dasdasdasdddf     ";


chcemy się pozbyć znaczków  
czyli po returnie z funkcji powinno zostać coś takiego:

Kod
asddf dsadasdasddf as234324dasdasdasdddf 


pomożecie mi rozwiązać ten problem ?
Pozdrawiam
nospor
Cytat
która skasuje mi powtarzające się znaki (stojące obok siebie)

Cytat
chcemy się pozbyć znaczków  
zdecyduj sie kolego co chcesz zrobic, bo albo kasujesz stojace obok siebie, albo kasujesz stojace obo siebie  .
Bo stojace obok siebie to ja widze tez chociazby "ddd" smile.gif
MitS
heh może źle się wyraziłem smile.gif

ustalamy znaczek, który chcemy skasować w naszym wypadku jest to   i kasujemy tylko   które stoją obok innych  
tzn. np. mamy 10 x   - zostawiamy pierwszy a 9 stojących obok siebie kasujemy.

czyli np.

Kod
  przykładowo pokazowy tekst       z twardymi spacjami  


wynik:

Kod
 przykładowo pokazowy tekst   z twardymi spacjami  
nospor
http://pl2.php.net/manual/pl/function.preg-replace.php
w komentarzasz masz rozwiązanie. Wszakze tam kasują spacje - wystarczy ze zamienisz na swoje nbsp
MitS
a jeszcze pozwolisz że się zapytam w którym to jest komentarzu (bo z 3 razy przejrzałem i nie mogę znależć).

Pozdrawiam
nospor
Example #5 Strip whitespace
MitS
aaa, myślałem że chodzi o przykłady w komentarzach inncyh userów.
Ten przykład to już wcześniej widziałem zanim napisałem ten temat. Lecz niestety testując i zmieniając go nie mogę osiągnąć tego co chcę bo zobacz:

jeżeli zamiast spacji damy co innego np. znaczek myślnika: - ;
  1. <?php
  2. $str = 'foo-----------o';
  3. $str = preg_replace('/ss+/', '-', $str);
  4. echo $str;
  5. ?>


to niestety wynikiem nadale będzie: foo-----------o
Na początku określamy jakich ciągów szukamy np.

  1. <?php
  2. function foo($txt, $ciag = "-"; ){
  3.  return preg_replace(? ? ? ? ?, $ciag, $txt);
  4. }
  5.  
  6. echo foo("foo*********o", "*");
  7. // wynikiem powinno być: foo*o
  8. ?>


i nie wiem co wpisać w miejsce "? ? ? ? ?" :/
nospor
ech... co ty wiesz o spacjach winksmiley.jpg

Kod
$str = 'foo-----------o';
$str = preg_replace('/--+/', '-', $str);
echo $str;
Teraz myslnik zamienia? Widzisz co zmienilem?
MitS
blink.gif heh dzięki za pomoc ... myślałem że to trudniejsze będzie :/
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.