Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> kasowanie powtarzających się znaków
MitS
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

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


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
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




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" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
MitS
post
Post #3





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

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


heh może źle się wyraziłem (IMG:http://forum.php.pl/style_emoticons/default/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  


Ten post edytował MitS 6.06.2008, 11:19:47
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
MitS
post
Post #5





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

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


a jeszcze pozwolisz że się zapytam w którym to jest komentarzu (bo z 3 razy przejrzałem i nie mogę znależć).

Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Example #5 Strip whitespace
Go to the top of the page
+Quote Post
MitS
post
Post #7





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

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


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 "? ? ? ? ?" :/

Ten post edytował MitS 6.06.2008, 12:06:31
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




ech... co ty wiesz o spacjach (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Kod
$str = 'foo-----------o';
$str = preg_replace('/--+/', '-', $str);
echo $str;
Teraz myslnik zamienia? Widzisz co zmienilem?
Go to the top of the page
+Quote Post
MitS
post
Post #9





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

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


(IMG:http://forum.php.pl/style_emoticons/default/blink.gif) heh dzięki za pomoc ... myślałem że to trudniejsze będzie :/
Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 12:41