Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyszukiwanie ciągu znaków w innym ciągu znaków
Forum PHP.pl > Forum > Przedszkole
SaMi
Witam chcę sprawdzić czy zmienna $z zawiera swój odpowiednik albo albo jego cześć w zmiennej zapisanej jako $string i tak jeśli chce porównać całościowo to nie ma problemu funkcja poniżej działa mi bez zarzutu jednak gdy w zmienna $z wygląda tak $z = "192.168.5.123"; to mam problem ponieważ nie znajduje mi żadngo odpowiednika a chce by znalazło 192.168.5, za pomocą jakiej funkcji mam to zrealizować ?
  1. <?php
  2. $z='192.168.5';
  3. $string = '192.168.2,192.168.5,123.456.789';
  4.  
  5. $a = explode(',', $string);
  6. foreach($a as $value){
  7.  
  8. if(!eregi($z,$value)){
  9. print $value 'nie pasują do wzorca:'. $z.' <br>';
  10. }
  11.  else
  12. {
  13.  print 'znalazłem pasujący ciag:'. $value.' <br>';
  14. }
  15. }
  16. ?>
Cienki1980
A może tak wykorzystać zwykłą funkcję strpos() questionmark.gif
SaMi
ekh własna głupota i pośpiech, tak powinien wyglądać wpis:

  1. <?php
  2. $z = '192.168.5';
  3. $string = '192.168.2,192.168.5,123.456.789';
  4.  
  5. $a = explode(',', $string);
  6. foreach($a as $value){
  7.  
  8. if(eregi($value, $z)) {
  9.  print 'znalazłem pasujący ciag: '. $value.' <br>';
  10. }
  11.  
  12. }
  13. ?>
Gray
Witam,
troszkę odkopuję ale chyba nie ma sensu zakładać nowego tematu. Czy przy sprawdzaniu ciągu funkcją eregi() w poszukiwaniu innego ciągu jest możliwość sprawdzenia ile razy dany ciąg się powtarza? np. ciąg 'WWWooWWWoo' sprawdzam w poszukiwaniu 'oo' i chciał bym się dowiedzieć, że występuje on 2 razy.
Jeśli nie da rady eregi to jaki mógł by być na to najłatwiejszy sposób?

Pozdrawiam,
Gray
Prym
primo: zrezygnuj z eregi bo ma status DEPRECATED. czyli teraz możesz użyć preg_match (wystąpienie wogóle) lub preg_match_all (wszystkie wystąpienia szukanego ciągu znaków)
Gray
Dzięki, przeglądnąłem tą funkcję w manualu ale nie rozumiem, jak jej użyć aby zwróciła mi ona numer powtórzeń szukanego ciągu w całym ciągu :/ nie jestem zaawansowany więc może to głupie pytanie ale jak to zrobić? dla takiego prostego ciągu wwwoowwwoowww chce sprawdzić ile razy występuje ciąg oo
Prym
np:
Kod
preg_match_all("/(oo)/", 'WWWooWWWoo', $asd);
echo 'oo występuje '.count($asd[1]).' razy';


oo występuje 2 razy
Gray
Leci "pomógł" smile.gif Dzieki.

edit:
Buuu, nie mogę Ci dać pomógł sad.gifsad.gif
Prym
Nie ma problemu - nie twój temat więc nie możesz dać pomógł smile.gif
peter13135
  1. substr_count('this is PHP!', 'is');//powinno zwrócić 2 tongue.gif


ten sposób chyba będzie prostszy i szybszy.
Prym
Cytat(peter13135 @ 29.10.2011, 23:19:57 ) *
  1. substr_count('this is PHP!', 'is');//powinno zwrócić 2 tongue.gif


ten sposób chyba będzie prostszy i szybszy.


a i owszem kolega dobrze radzi - moje rozwiązanie będzie dotyczyło bardziej zastosowania wyrażeń regularnych i przerzucenia wyniku do tablicy, którą możesz obrabiać dane. Zastosowanie substr_count zwraca ci czystą liczbę więc szybciej będzie dla generowania kodu. ogólnie wszystko zależy co człowiek potrzebuje wink.gif
Gray
Dziekuję.
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.