Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zamiana ciągu identycznych znaków na pojedynczy
Forum PHP.pl > Forum > Przedszkole
kubap007
Mam pytanie czy zna ktoś funkcje, która jako operacja na ciągu znaków zamienia kolejno po sobie występujących kilka np. spacji na jedną. Szukałem już w opisach funkcji, ale to szukanie igły w stogu siana. Wiadomo, że można napisać taką funkcję, ale zapewne spowolni to skrytp. Jeśli ktoś korzystał z podobnej byłbym wdzięczny za namiary. Dla innych poszukujących operacji na stringach smile.gif polecam stronki:
http://mynthon.net/articles/php/php_strings
http://www.digipedia.pl/php/ref.strings.php
nowotny
Nie spotkałem się z taką funkcją... najlepiej chyba będzie użyć wyrażeń regularnych i preg_replace" title="Zobacz w manualu PHP" target="_manual...
l0ud
najlepiej zrobić po prostu coś w tym stylu smile.gif

$text = ereg_replace (" +", " ", $text);
kubap007
Niestety największy problem polega na tym, że ilość spacji w każdym wierszu który opracowuje się zmienia więc nie mogę na stałe zamieniać powiedzmy 5 spacji na 1.

Cytat(l0ud @ 20.02.2008, 20:06:35 ) *
najlepiej zrobić po prostu coś w tym stylu smile.gif

$text = ereg_replace (" +", " ", $text);


Wielkie dzięki działa smile.gif
Kicok
A poniżej wyrażenie działające dla wszystkich znaków, a nie dla jednego konkretnego:
  1. <?php
  2.  
  3. $text = 'aaaaabbb eddd sdffds ...67888aa,,aaa ffeeee';
  4.  
  5. echo '<pre>' . preg_replace( '/(.)1+/', '1', $text ) . '</pre>';
  6.  
  7. ?>



Można zamienić kropkę na inne wyrażenie, np.: \\s aby skracać jedynie powtarzające się białe znaki, albo [a-zA-Z] aby skracać litery.
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.