To jest strona czatu. Mam $string = "This dude is a mothertrucker"
. Mam szereg błędnych słów: $bads = array('truck', 'shot', etc)
. Jak mogę sprawdzić, czy $string
zawiera którekolwiek ze słów w $bad
?
Do tej pory mam:Sprawdź, czy ciąg zawiera słowo w tablicy
foreach ($bads as $bad) {
if (strpos($string,$bad) !== false) {
//say NO!
}
else {
// YES! }
}
wyjątkiem, kiedy to zrobić, gdy użytkownik wpisze słowo na liście $bads
, wyjście jest NIE! następnie TAK! więc z jakiegoś powodu kod uruchamia go dwukrotnie.
Możesz użyć 'in_array' http://php.net/manual/en/function.in-array.php –
@LearneR Problem polega na tym, że chociaż" ciężarówka "jest złym słowem, to nie robi" t wykryj "mothertrucker", ponieważ wykrywa go dokładnie. Preferuję strpos, ponieważ jest większa elastyczność. – user1879926
Chociaż, ze strpos, można pomylić "klasyczny" za złe słowo nie? Musisz dodać przerwę, gdy znajdziesz złe słowo, aby niepotrzebnie nie przeszukiwać reszty listy. – AEQ