Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja eregi(), mały problemik :)
Sylwin
post 16.07.2007, 20:49:01
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 29.10.2006

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


Mam taki ciąg: alamakota daje:

  1. <?php
  2. $wczym="alamakota";
  3. $co="ala";
  4.  
  5. if(eregi($wczym,$co)){
  6. echo"Jest!";
  7. }else{
  8. echo"Nie ma!";
  9. }
  10. ?>


Jak zrobić żeby pokazywało Jest tylko wtedy gdy "ala" jest osobnym słowem w np w "ala ma kota" a nie w "alamakota"??

Ten post edytował Sylwin 16.07.2007, 20:50:01
Go to the top of the page
+Quote Post
Siner
post 16.07.2007, 21:44:24
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 6
Dołączył: 2.01.2004

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


Jedyny jaki pomysł mi przychodzi do głowy to rozbić zdanie na wyrazy i wsadzić je do tablicy, a później sprawdzić czy wyraz szukany jest w tej tablicy:
  1. <?php
  2. $wczym = 'ala ma kota';
  3. $co = 'ala';
  4. $tablica = explode(' ', $wczym);
  5.  
  6. if(in_array($co, $tablica)
  7. {
  8. echo 'Jest';
  9. }
  10. ?>


Tylko to chyba mało optymalne i pisane z palca.


--------------------
Go to the top of the page
+Quote Post
Kicok
post 17.07.2007, 06:29:49
Post #3





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


  1. <?php
  2.  
  3. $wczym1 = 'alamakota';
  4. $wczym2 = 'ala ma kota';
  5.  
  6. $co = 'ala';
  7.  
  8.  
  9. if( preg_match( '/b' . preg_quote( $co, '/' ) . 'b/i', $wczym1 ) ) {
  10. echo 'Jest';
  11. }
  12. else {
  13. echo 'Nie ma';
  14. }
  15.  
  16. ?>


preg_match" title="Zobacz w manualu PHP" target="_manual - podobna składnia do wyrażeń ereg* (POSIX'owych)
preg_quote" title="Zobacz w manualu PHP" target="_manual - wstawia ukośniki przed metaznakami tak, by były traktowane jako zwykły tekst

\b - początek lub koniec wyrazu.


Jako że \b nie jest doskonałe będziesz jeszcze musiał przetestować jak funkcja zachowuje się z przecinkami, kropkami, apostrofami czy innymi znakami interpunkcyjnymi.


--------------------
"Sumienie mam czyste, bo nieużywane."
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:37