Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja usuwająca nadmiar spacji
Forum PHP.pl > Forum > Przedszkole
Szunaj85
Wiem, że są takie funkcje jak schop, rtrim, ltrim, trim. Ale czy jest jakaś funkcja, która by usuwała nadmiar spacji lub skrypt, który by wyświetlał komunikat, że w tekście (zmiennej) jest więcej niż jedna spacja między słowami?
Sumując jak zaradzić żeby w tekście
(zmiennej) nie znajdowały się dwie lub więcej spacji koło siebie? dry.gif
sowiq
Możesz zrobić najprościej, np.:
  1. <?php
  2. while(strpos('  ', $string) !== false){   // 2 spacje pomiędzy ''
  3.    $string = str_replace('  ', ' ', $string);    // 1. argument to dwie spacje, 2. to jedna spacja
  4. }
  5. ?>
bełdzio
preg_replace + zamiana "\s{2,}" na spacje
Szunaj85
bełdzio czy o takie coś ci chodziło? Jeśli są jakieś błedy napiszcie.
  1. <?php
  2. $tekst = preg_replace($tekst,"s{2,}",' ');
  3. ?>
1. Za bardzo nie wiem co oznacza to"\s".
2. Czy jak będą więcej niż dwie spacje, np. 4 to nie zostaną na końcu 2?
Czyli nie podzieli 2 razy po 2 spacje co da wynik 2.
Darti
każde (2) dwie (,) lub więcej zamieni na (' ') jedną spację
Maxik
Jest też rozwiązanie alternatywne: dzielisz string używając explode, lecisz po wszystkich elementach tablicy trimem i implode'ujesz w string z pojedynczymi spacjami, ale prościej i szybciej będzie regexpem
Szunaj85
Czyli mam rozumieć, że kod który napisałem powyżej jest poprawny?
Nadal nie wiem co oznacza to"\s".
Crozin
http://pl.php.net/manual/en/regexp.reference.php - masz dokładnie opisane co oznacza: \s w PCRE.
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.