Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak z tekstu osiągnąć słowa, liczby oddzielone spacją?
Forum PHP.pl > Forum > Przedszkole
Malinaa
Pytanie jak w temacie. Mając tekst chciałbym sformatować go tak, aby otrzymać czysty tekst bez kropek, przecinków innych znaków.
Usunąć wszystkie inne zanki i pozostawić tylko wyrazy i liczby oddzielone spacją, wyraz po wyrazie (polskie znaki oczywiście zostają).

Obecnie mam coś takiego, ale musiałbym dodać wszyskie inne możliwe znaki questionmark.gif?

$szukaj = array(".", ",", ":", ";", "!", "?", "&", "$", "(", ")", "|", " ", """, "»", "\n", "\r\n");
$zastap = array('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
$tekst = str_replace($szukaj, $zastap, $tekst);

po co tak komplikować sobie zadanie, można prościej?
wookieb
Zastosuje preg_replace i wyrażenia regularne.
Coś w tym stylu
  1. preg_replace('/[^a-ząść ]/', '', $tekst);

Oczywiście tablice polskich znaków musisz uzupełnić.
thek
Nie musi wypisywać. Jeśli ma w miarę nową wersję PHP (PHP4 tego jeszcze nie łapie, bo mi kiedyś się wywaliło na hostingu gdzie 4 chodzi) może użyć:
  1. preg_replace('/[^a-ż ]/', '', $tekst);
Malinaa
Po sformatowaniu pliku na utf-8 działa,

jedno:
$tekst = preg_replace('/[^a-ząćęłńóśżźA-ZĄĆĘŁŃÓŚŻŹ0-9 ]/', '', $tekst);

i drugie:
$tekst = preg_replace('/[^a-żA-Ż0-9 ]/', '', $tekst);

Thanks
thek
Użyj przełącznika "ignore case sensitivity" smile.gif
  1. $tekst = preg_replace('/[^a-ż0-9 ]/i', '', $tekst);
a zredukujesz konieczność wypisywania małych i dużych liter osobno.
Malinaa
Teraz to już jest bajka,
mistrzostwo thek

Thanks
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.