czy istnieje wbudowana funkcja php która z wprowadzonego do textarea stringu usunie wszystkie znaki które nie są literami
chodzi o oczyszczenie tekstu w celu wprowadzenia samych słów do bazy
$s=preg_replace('#[^a-z]*#gi','',$s);
nav napisał(a)
$s=preg_replace('#[^a-z]*#gi','',$s);
wielkie dzięki o to chodziło
tylko #gi wyrzucało błąd ale jak zlikwidowałem g to wszystko gra.
jeszcze tylko moje 3 grosze
$s=preg_replace('#[^a-z|\s]*#i','',$s;
powyższy kod uwzględnia spacje, czyli zamiast ciągu liter mamy oddzielne słowa które następnie możemy wprowadzić do bazy.
dziękuje za pomoc
Raczej
$s=preg_replace('#[^a-z\s]*#i','',$s);
Chyba że chcesz aby znak | też został.
wszystko fajnie tylko są jeszcze dwa problemy,
pierwszy. polskie znaki zostają odrzucone.
drugi. skrypt wykorzystuje funkcje php explode która wybiera kolejno słowa w celu umieszczenia ich w bazie
tylko jest jeden problem jeśli są dwie spacje np. to funkcja explode traktuje tą drugą spacje jak słowo i umieszcza w słowniku.
znacząca częśc tego skryptu wygląda następująco:
// rozbijanie tekstu na zdania
$sentChunks = explode(".", $orgString);
for($i = 0; $i < count($sentChunks)-1; $i++){
$sentChunks[$i]=preg_replace('#[^a-z|\s]*#i','',$sentChunks[$i]);
echo "zdanie $i<br />";
//rozbijanie zdania na slowa
$wordChunks = explode(" ", trim($sentChunks[$i]));
for($j = 0; $j < count($wordChunks); $j++){
echo "$j $wordChunks[$j]";
$rezultat=mysql_query("SELECT slowoPL FROM plslowo WHERE slowoPL = '$wordChunks[$j]'");
if(@mysql_num_rows($rezultat)){
//słowo istnieje w bazie dodaj wystąpienia
echo " - instnieje";
mysql_query("UPDATE plslowo SET wystapien = wystapien +1 WHERE slowoPL = '$wordChunks[$j]'");
}
else
{
//slowo nie istnieje w bazie dodaj slowo
echo " - nie istnieje ";
mysql_query("INSERT INTO plslowo (slowoPL, wystapien) VALUES ('$wordChunks[$j]','1')") or die ('Zapytanie zakończone niepowodzeniem: ' . mysql_error());
}
czy ktoś ma pomysł jak wykonać to tak żeby do bazy trafiały słowa z polskimi znakami, pomijając spacje, a jeśli jest taka możliwość, usuwać też słowa które nie są słowami języka polskiego czy angielskiego bo o takie teksty chodzi, wiem że jest funkcja aspell która sprawdza poprawność słowa, ale ciężko znaleźć serwer gdzie ta funkcja jest zaimplementowana więc czy są jakieś inne sposoby ?