Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Jak sprawdzić, czy w ciągu znaków nie ma ciągu znaków w zdefiniowanej tablicy?, czyli jak wyłapać elemnt z tablicy w ciągu i jemu podobne?
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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?
Go to the top of the page
+Quote Post
legorek
post
Post #2





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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

Ten post edytował legorek 12.08.2006, 17:49:04
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #3





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
A co jest wogóle złego w tym rozwiązaniu?

Pozdrawiam.

Ten post edytował Cysiaczek 12.08.2006, 17:51:45
Go to the top of the page
+Quote Post
Athlan
post
Post #4





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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ł (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

nawiązując do tematu... ponawiam moje 2 pierwsze pytanie (z postu #1)

Ten post edytował Athlan 12.08.2006, 18:01:43
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 21:12