Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: strstr() Odnajdywanie ciągu w ciągu
Forum PHP.pl > Forum > PHP
Eldiane
Witam, chciałbym zrozumieć zasadę działania funkcji strstr(), mam taki oto kod (nazwa pliku to:TWORZENIE_STRONY_OBIEKTY.php):
  1. $przyciski = array('Button1', 'TWORZENIE_STRONY_OBIEKTY.php', 'Button3', 'Button4');
  2.  
  3. function CzyToWlasciwyURL($przyciski)
  4. {
  5. $HOST = $_SERVER['PHP_SELF'];
  6. for($i=0; count($przyciski) >= $i ; $i++)
  7. {
  8. if(strstr($HOST,$przyciski[$i]))
  9. return true;
  10. else
  11. return false;
  12. }
  13. }
  14.  
  15. $wynik = CzyToWlasciwyURL($przyciski);
  16. echo $wynik;


po wykonaniu kodu funkcja zwroci false, dlaczego? gdy kod zmienie na:
  1. $przyciski = array('Button1', 'TWORZENIE_STRONY_OBIEKTY.php', 'Button3', 'Button4');
  2.  
  3. function CzyToWlasciwyURL($przyciski)
  4. {
  5. $HOST = $_SERVER['PHP_SELF'];
  6. for($i=0; count($przyciski) >= $i ; $i++)
  7. {
  8. if(strstr($HOST,'TWORZENIE'))
  9. return true;
  10. else
  11. return false;
  12. }
  13. }
  14.  
  15. $wynik = CzyToWlasciwyURL($przyciski);
  16. echo $wynik;


Wszystko działa ok, mam rozumieć że jako parametr musi być przekazany tylko ciąg znaków? jeżeli tak to czy ktoś mógłby mi wyjaśnić jak rozwiązać ten problem?

z góry dziękuje
Eldiane
CuteOne
http://php.net/manual/pl/function.strstr.php + google translator
Eldiane
Dzięki za linka do manuala, na pewno się przyda ;P

Gwoli ścisłości, pokażę gdzie tkwił błąd:
  1. function CzyToWlasciwyURL($przyciski)
  2. {
  3. $HOST = $_SERVER['PHP_SELF'];
  4. for($i=0; count($przyciski) >= $i ; $i++)
  5. {
  6. if(strstr($HOST, $przyciski[$i]))
  7. return $przyciski[$i];
  8. else
  9. return false;
  10. }
  11. }


Funkcja zwracała zawsze false jeżeli pierwszy element tablicy nie był taki sam jak $HOST, a co za tym idzie funkcja kończyła działanie za każdym razem po pierwszym elemencie tablict smile.gif

Wystarczyło poprawić na:

  1. function CzyToWlasciwyURL($przyciski)
  2. {
  3. $HOST = $_SERVER['PHP_SELF'];
  4. for($i=0; count($przyciski) >= $i ; $i++)
  5. {
  6. if(strstr($HOST, $przyciski[$i]))
  7. return $przyciski[$i];
  8. }
  9. }


Temat można zamknąć smile.gif
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.