Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]strpos a znak v, Dziwny błąd...
--void--
post
Post #1





Goście







  1. <?php
  2. $ciag = 'vvv';
  3. if(strpos($ciag, 'v'))
  4. {
  5. echo 'Wystąpił znak v';
  6. }
  7. else
  8. {
  9. echo 'Nie wystąpił znak v';
  10. }
  11. ?>


Mógłby mi ktoś powiedzieć, dlaczego taki kod wypisuje, że nie ma znaku v? Jeśli dam inną literę lub cyfrę i sprawdzę, to wypisuje poprawnie. Bug? Nie znalazłem nigdzie. Jak sobie z tym radzić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Kicok
post
Post #2





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

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


strpos" title="Zobacz w manualu PHP" target="_manual -> Return Value
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://pl2.php.net/manual/pl/function.strpos.php
Cytat
Find position of first occurrence of a string

Cytat
Ostrzeżenie

Ta funkcja może zwrócić logiczne FALSE, ale także zwykłą wartość rozpoznawaną jako FALSE, na przykład 0 lub "".

Cos zaczyna switac? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #4





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Cytat(-void- @ 10.06.2008, 20:51:34 ) *
  1. <?php
  2. $ciag = 'vvv';
  3. if(strpos($ciag, 'v'))
  4. {
  5. echo 'Wystąpił znak v';
  6. }
  7. else
  8. {
  9. echo 'Nie wystąpił znak v';
  10. }
  11. ?>


Mógłby mi ktoś powiedzieć, dlaczego taki kod wypisuje, że nie ma znaku v? Jeśli dam inną literę lub cyfrę i sprawdzę, to wypisuje poprawnie. Bug? Nie znalazłem nigdzie. Jak sobie z tym radzić?


strpos nie zwraca true. Zwraca tylko false, jeśli nie znajdzie znaku, lub położenie (jako liczbę) danego znaku w stringu. W Twoim wypadku będzie to liczba 3. A liczba 3 to nie jest to samo co true (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zrób tak

  1. <?php
  2. $ciag = 'vvv';
  3. $pos = strpos($ciag, 'v');
  4. if(!$pos)
  5. {
  6. echo 'Nie wystąpił znak v';
  7. }
  8. else
  9. {
  10. echo 'Wystąpił znak v, ostania jego pozycja to: '.$pos;
  11. }
  12. ?>


[/php]
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
W Twoim wypadku będzie to liczba 3
Dobry gryps nie jest zly (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Find position of first occurrence of a string - wg ciebie co to oznacza? pierwszą czy ostatnią pozycje?
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #6





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Cytat(nospor @ 10.06.2008, 20:59:17 ) *
Dobry gryps nie jest zly (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Find position of first occurrence of a string - wg ciebie co to oznacza? pierwszą czy ostatnią pozycje?


Dobrze nospor że czuwasz. Dzięki Tobie żadna literówka, żaden błąd lub napisanie czegoś inaczej niż miało się na myśli zostanie szybko skorygowane, bo nie przemknie to Twojej uwadze. Dzięki.

Ten post edytował sniezny_wilk 10.06.2008, 22:02:46
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
napisanie czegoś inaczej niż miało się na myśli
No tutaj to byl raczej blad niz przejezyczenie.
Zwrocone zostanie 0, gdyz to jest pierwszym indexem wystapienia v.
Ma byc ostatecznie tak:
  1. <?php
  2. $ciag = 'vvv';
  3. if(strpos($ciag, 'v') !== false)
  4. {
  5. echo 'Wystąpił znak v';
  6. }
  7. else
  8. {
  9. echo 'Nie wystąpił znak v';
  10. }
  11. ?>
Go to the top of the page
+Quote Post
--void--
post
Post #8





Goście







  1. <?php
  2. $ciag = 'avvv';
  3. if(strpos($ciag, 'v'))
  4. {
  5. echo 'Wystąpił znak v';
  6. }
  7. else
  8. {
  9. echo 'Nie wystąpił znak v';
  10. }
  11. ?>


hehehe, przeszedłem samego siebie - `dziwny błąd ze znakiem v`... Czasami siła autosugestii jest porażająca, testowałem inne przykłady, ale najwidoczniej w żadnym szukany znak nie miał pozycji pierwszej (czyli zerowej) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Dzięki wielkie !
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: 15.09.2025 - 15:22