Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Czy w ciągu znajdują się inne słowa niż w tablicy/oprócz tych w tablicy
Szunaj85
post
Post #1





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


Jak sprawdzić czy w zmiennej będącej ciągiem znajdują się inne wyrazy niż te w tablicy?
  1. $tablica = array(
  2. 'Ala ',
  3. 'ma ',
  4. 'kota.');
Np.
'Ala ma kota.' - nie znajdują się
'Ala ma kota. Kot ma Alę.' - znajdują się
Oczywiście kolejność wyrazów też ma znaczenie i może być inna.
'kota. ma Ala ' - nie znajdują się

Ten post edytował Szunaj85 21.04.2010, 14:36:03


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


  1. if(strlen(trim(str_replace($tablica,'',$text))))
  2. {
  3. // są
  4. }


--------------------
Go to the top of the page
+Quote Post
Szunaj85
post
Post #3





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


Nie jestem pewien, ale Twój skrypt działa chyba odwrotnie niż chciałem.


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
melkorm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


a chociaż przetestowałeś ? ... .


--------------------
Go to the top of the page
+Quote Post
Szunaj85
post
Post #5





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


Tak...


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
melkorm
post
Post #6





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Skrypt ma sprawdzać czy istnieją słowa które nie są zawarte w tablicy, a więc wycinamy słowa które występują w tekście i tablicy, po czym czyścimy z początku i końca białe spacje itp (w razie by coś zostało) i sprawdzamy długość tekstu i jeżeli nie jest pusty to wiadomo że wystąpiły jakieś znaki które nie są zawarte w tablicy.


--------------------
Go to the top of the page
+Quote Post
Szunaj85
post
Post #7





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


  1. if(strlen(trim(str_replace($tablica,'',$text))))
  2. {
  3. echo 'Są inne słowa niż w tablicy';
  4. }
Taki komunikat wyświetla mi kiedy nie ma innych słów niż w tablicy.
Na razie dałem 'zaprzeczenie' (!) i teraz działa dobrze. Mam nadzieję, że w dobrym miejscu je wpisałem.
Jeśli twój kod działa poprawnie być może przyczyna leży gdzie indziej. I tak mi już dużo pomogłeś. Później spróbuję poszukać przyczyny takiego działana kodu.
  1. if(!strlen(trim(str_replace($tablica,'',$text))))
  2. {
  3. echo 'Są inne słowa niż w tablicy';
  4. }


Ten post edytował Szunaj85 21.04.2010, 15:47:45


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
melkorm
post
Post #8





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Na logikę, czy sądzisz iż po wycięciu wszystkich słów z tekstu które znajdują się w tablicy string będąc pustym, będzie zawierać inne słowa niż w tablicy?

@edit

  1. $text = 'kota. ma Ala ';
  2. $tablica = array(
  3. 'Ala ',
  4. 'ma ',
  5. 'kota.');
  6. if(strlen(trim(str_replace($tablica,'',$text))))
  7. {
  8. echo 'są';
  9. }


Twój własny przykład.

Ten post edytował melkorm 21.04.2010, 15:54:33


--------------------
Go to the top of the page
+Quote Post
Szunaj85
post
Post #9





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


Cytat
Na logikę, czy sądzisz iż po wycięciu wszystkich słów z tekstu które znajdują się w tablicy string będąc pustym, będzie zawierać inne słowa niż w tablicy?
Jeśli cię dobrze zrozumiałem bazując na tym przykładzie co go podałeś to nie.
  1. //Nie ma innych słów
  2. $text = 'kota. ma Ala ';
  3. $tablica = array(
  4. 'Ala ',
  5. 'ma ',
  6. 'kota.');
  7. if(strlen(trim(str_replace($tablica,'',$text))))
  8. {
  9. echo 'są';
  10. }
Ale jeśli przykład wygląda tak:
  1. //Są inne słowa
  2. $text = 'Ala ma kota. Kot ma Alę.';
  3. $tablica = array(
  4. 'Ala ',
  5. 'ma ',
  6. 'kota.');
  7. if(strlen(trim(str_replace($tablica,'',$text))))
  8. {
  9. echo 'są';
  10. }
Twierdzisz, że twój kod działa poprawnie. Tak? Ok.
Wyskakuje komunikat gdy w stringu znajdują się inne słowa niż w tablicy. Więc do czego zmierzasz? Bo nie wiem jak rozumieć twojego posta.

Ten post edytował Szunaj85 21.04.2010, 16:18:56


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
melkorm
post
Post #10





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Cytat
Ale jeśli przykład wygląda tak:


No to dobrze wyświetla "są", bo są inne słowa snitch.gif


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 04:53