Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak sprawdzić, czy w ciągu znaków nie ma ciągu znaków w zdefiniowanej tablicy?
Forum PHP.pl > Forum > PHP
Athlan
Mój problem będzie dotyczył badwords...

mamy tablicę z badwords:
  1. <?php
  2. $badWords = array('komputer','lodówka','żelasko','obciągdrut','wiertarkokręt');
  3. ?>

i takie tam tongue.gif

i teraz mam taki kod (pisany tutaj z palca mogą być błędy):
  1. <?php
  2. $string = 'komputerrrrrrowy';
  3.  
  4. $e = 0;
  5.  
  6. foreach($badWords as $word)
  7. {
  8. if(eregi($string, $word))
  9. {
  10. $e++;
  11. }
  12. }
  13.  
  14. if($e)
  15. {
  16. echo'nie przeklinaj, '.$e.' przekleństw w Twoim ciągu znaków';
  17. }
  18. else
  19. {
  20. echo $string;
  21. }
  22. ?>


P.S. powyższy kod nie powinien dzialać bo słowo "komputerrrrrrowy" nie zostanie przypasowane do badwords (patrz pytanie nr 2 w ostatniej części tematu).

pytanie (pytania w sumie smile.gif ) są takie:

1. jak sprawdzić czy ciąg znaków posiada jakiś element tablicy bez uzycia foreach?
2. jak zrobić aby ciąg "komputerrrrrrowy" odpowiadał ciągowi z pierwszego elementu powyżeszj tablicy?
legorek
Nie rozumiesz koncepcji eregi" title="Zobacz w manualu php" target="_manual, poczytaj o wyrażeniach regularnych.

ad 1) in_array" title="Zobacz w manualu php" target="_manual
ad 2) nie rozumiem pytania
Cysiaczek
Nie bardzo tak się da. Jest to nielogiczne. Właśnie po to masz badwords, aby przeszukiwac tekst pod kątem wystąpowania tych badwords. Jak je napotykasz, to cos robisz. Jak to widzisz odwrotnie? Oczywiście za pomocą funkcji z manuala możesz pokombinowac. Jest to jednak nielogiczne, bo musiałbyś stworzyć jakieś kryterium wyszukiwania, a co dwa kryteria, to niezdrowo biggrin.gif
A co jest wogóle złego w tym rozwiązaniu?

Pozdrawiam.
Athlan
Cytat(legorek @ 12.08.2006, 16:48 ) *
Nie rozumiesz koncepcji eregi" title="Zobacz w manualu php" target="_manual, poczytaj o wyrażeniach regularnych.


do czego służy ta funkcja i wyrażenia regularne to wiem smile.gif posłużyłem się nią tylko, by sprawdzić ciąg znaków, czyli zamiast wyrażenia podstawiam już gotowy, wygenerowany tekst. A z tym in_array() to nie rozwizało mojego problemu jakbyś nie zauwazył z leksza tongue.gif

hmmm wpadłem na pomysł żeby w tablicy generować wyrażenia regularne... np:
kur*
wypier*

gdzie * to dowolny ciąg znaków

ale nie wiem czy to jest dobry pomysł sad.gif

nawiązując do tematu... ponawiam moje 2 pierwsze pytanie (z postu #1)
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.