After I finished the 3 Pan Galactic Gargle Blasters, ngr@mail.dk
(Niels Graverholt) just offered me, he muttered some weird stuff, and
I had to correct this gibberish:
>Her skriver skidtet, at strpos er 0, og længere nede skrives der ok.
>Hvis jeg så ændrer 1299999 til 2299999 så skriver strpos ikke noget
>(hvilket jo er korrejkt), men længere nede skrives der STADIGVÆK ok.
>Hvad fanden er der galt?
Først og fremmest fik jeg "??????????????" til overs i din besked.
Og så til sagen:
Du benytter funktionen forkert.
strpos funktionen returnerer hvor i strengen (parameter 1) den finder
den givne streng (parameter 2).
I dit første eksempel finder den needle(parameter 2) allerførst i
haystack (parameter 1), derfor returnerer den 0.
Hvis man så erstatter det med noget der ikke bliver fundet, vil
funktionen returnere falsk.
Nu er det sådan at PHP forstår 0 (nul) som falsk,
: echo(strpos($s,"12"));
vil derfor ikke udskrive noget, men når du tjekker på om det er == 0,
så vil det evaluere til sandt, og den vil gå videre ind i if'en og
skrive "ok".
Den rigtige måde at bruge funktionen på (som også står i manualen) er
(snuppet fra manualen):
: // in PHP 4.0b3 and newer:
: $pos = strpos($mystring, "b");
: if ($pos === false) { // note: three equal signs
: // not found...
: }
:
: // in versions older than 4.0b3:
: $pos = strpos($mystring, "b");
: if (is_string($pos) && !$pos) {
: // not found...
: }
--
Nano Martin Mouritzen Phone +45 27105580
Vesterbrogade 30C. 2. Programmer Advanced Simplicity
DK-8000 Århus martin@nano.dk
http://www.nano.dk
Nano nu officiel dansk distributør af UltraEdit, se mere på websitet