Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> usuwanie powtarzających się znaków
pr0woKator
post 22.02.2014, 11:57:17
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 1
Dołączył: 9.02.2012

Ostrzeżenie: (10%)
X----


Cześć,

Piszę właśnie funkcję która będzie odpowiadała za generowanie przyjaznego linku z danego stringu.
Teraz napotkałem problem w z którym nie wiem jak sobie poradzić, mianowicie chcę usunąć powtarzające się te same znaki obok siebie np.

dla stringu: "Kaloryfery / Grzejniki"

Moja funkcja usuwa znak / a zamiast spacji wstawia "-" i teraz to wygląda tak: kaloryfery--grzejniki, chciał bym usnąć tyle "-" aby pomiędzy tymi słowami był tylko 1 - czyli 1 (Piszę to specjalnie ponieważ może się zdarzyć że system wygeneruje link i pomiędzy słowami będzie 3 myśliniki, a docelowo ma być tylko jeden).

Proszę o podpowiedzi.
Go to the top of the page
+Quote Post
Spawnm
post 22.02.2014, 12:26:08
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Tak na szybko to można by użyć regexa, ale pewnie znalazło by się coś bardziej optymalnego.
  1. <?php
  2. $x= 'asdsfgd--dfx-dzfxg---dzfxc';
  3. $x = preg_replace('/(-+)/i', '-', $x);
  4. echo $x;
Go to the top of the page
+Quote Post
404
post 22.02.2014, 12:37:17
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

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


Sprawdzaj, czy poprzedni znak w nowym ciągu nie jest "-" zanim go wstawisz.
Go to the top of the page
+Quote Post
Pyton_000
post 22.02.2014, 12:43:26
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


  1. preg_replace('/[-]+/', '-', $input);
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 29.03.2024 - 09:28