Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zamiana na encje więcej niż 2 spacje
Forum PHP.pl > Forum > Przedszkole
Sekwer
Witam,
Chciałem, żeby więcej niż 2 spacje w tekście zostały zamienione na tzw. twarde spacje. ( ), mógłbym to zrobić za pomocą str_replace, ale ja nie chcę zamieniać wszystkich spacji na twarde spacje

Próbowałem z preg_replace i wyszło mi, że więcej niż 1 spację zamienia na jedną twardą spację, ale ja chciałem na zamienić na tyle spacji twardych, ile jest spacji "miękkich"

  1. <?php
  2. preg_replace('/[\ ]{2,}/', ' ', $text);
  3. ?>


Proszę o ew. poprawienie kodu, lub wskazówkę.
Fifi209
  1. preg_replace('#[[:space:]]{2,}#', '&nbsp;', $text);
Sekwer
Twój przykład działa tak samo jak mój.
Mnie potrzeba zamienić wszystkie spacje koło siebie na &nbsp; (nie na jedno &nbsp; ale na tyle, ile jest spacji koło siebie)

Taka zamiana następuje, tylko w przypadku kilku spacji koło siebie.
;P
Fifi209
  1. preg_replace_callback('#[[:space:]]{2,}#', create_function('$matches', 'return str_replace(\' \', \' \', $matches[0]);'), $text);


Teraz działa dobrze. ;p
Sekwer
Nie wiem co robię źle ale nadal nie działa
----------
Fifi209
  1. <?php
  2.  
  3. $text = ' a ja wole swoja mame e cc';
  4. echo $text.'<br/>';
  5. echo preg_replace_callback('#[[:space:]]{2,}#', create_function('$matches', 'return str_replace(\' \', \' \', $matches[0]);'), $text);
  6.  
  7. ?>

daje wynik:
  1. a ja wole w swoja mame e cc<br/>
  2. a ja wole w  swoja   mame    e   cc


@edit
Oczywiście forum usuwa mi encje teraz...

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.