Andre: strpos gibt nicht das zurück, was es soll

Hallo,

ich suche mit
if(strpos($rows[$i][2],'Girls')){$type .= 'weiblich;';}
wobei die row in der csv heisst z.b. Girls Pant Denim blabla

Wieso wird das strpos nicht erkannt, nur wenn $row abändere in:

if(strpos($rows[$i][2],'irl')){$type .= 'weiblich;';}

Dann wird der Typ richtig gesetzt.
Kann mir bitte jemand erklären, wieso?

Danke

  1. Hello Andre,

    Kann mir bitte jemand erklären, wieso?

    Gerne, wenn Du dein Problem vorher in ganzen Sätzen unter Nennung der Rahmenbedingungen nochmal schildern könntest, sodass man verstehen kann, was Du da gerade treibst?

    Wir sitzen zwar nur einige Millisekunden weit weg von Dir, aber wir können dir noch lange nicht  durch die Leitung über die Schulter gucken.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  2. Hi,

    Wieso wird das strpos nicht erkannt, nur wenn $row abändere in:

    if(strpos($rows[$i][2],'irl')){$type .= 'weiblich;';}

    Dann wird der Typ richtig gesetzt.
    Kann mir bitte jemand erklären, wieso?

    Weil du den mehr als deutlichen Hinweis bzgl. des Rückgabewertes von strpos im Handbuch *ignoriert* hast.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  3. Hallo,

    ich suche mit
    if(strpos($rows[$i][2],'Girls')){$type .= 'weiblich;';}
    wobei die row in der csv heisst z.b. Girls Pant Denim blabla

    Wieso wird das strpos nicht erkannt, nur wenn $row abändere in:

    if(strpos($rows[$i][2],'irl')){$type .= 'weiblich;';}

    Dann wird der Typ richtig gesetzt.
    Kann mir bitte jemand erklären, wieso?

    Danke

    Wenn du genau hinschaust solltest du das Problem erkennen :)

    Deine Abfrage
    if(strpos($rows[$i][2],'Girls')){$type .= 'weiblich;';}
    kann nicht klappen da strpos als Returnwert eine 0 (Stringposition 0) zurück liefert. If interpretiert 0 automatisch als false. Somit ist der Ausdruck also unwahr und er wird den ifBlock nicht ausführen.

    Du solltest === bzw. !== als Vergleichoperator verwenden.

    if(strpos($rows[$i][2],'Girls') !== false){$type .= 'weiblich;';}

    Damit sollte es klappen.

    Gruß Metalgurke