in_array i explode

0

Witam. Od razu przejdę do rzeczy. Potrzebuje skrypt, który wyłapie niepotrzebny tekst.

W tym celu naskrobałem coś takiego:

$topic1 = 'witam wszystkich, witam, siema, czesc';
$topic = explode(',', $topic1);
$topic2 = 'witam wszystkich';

if(in_array($topic2, $topic))
{
echo 'blad';
}

Powyższy kod mniej więcej działa, ale, co gdy $topic2 będzie witam wszystkich!!, będzie miał więcej spacji albo kropki, przecinki czy wykrzykniki, co można zrobić aby i to wychwytywało?

0

Rozwiązaniem mogą być wyrażenia regularne (ang. regular expressions, w skrócie regex lub regexp). W tym przypadku mógłbyś użyć funkcji preg_split.

Teraz zrodzi się pytanie, jak skonstruować wyrażenie regularne dzielące wyrazy wg Twojego uznania. Cóż, musiałbyś po prostu ogarnąć wyrażenia regularne. Opłaca się, bo spotkasz je nie tylko w PHP, ale i w JavaScripcie, a także Javie, C#, oczywiście Perlu i wieeelu innych językach. Zawsze wyglądają tak samo (na podstawowym poziomie), więc nauczysz się raz i będziesz miał wiedzę przydatną w różnych językach.

Aha: w przypadku PHP używaj funkcji o nazwach zaczynających się na "preg_", nie używaj tych "ereg" -- są przestarzałe, wolniejsze i słabsze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1