/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
streng relateret funktion ?
Fra : L[x]


Dato : 12-11-04 12:47

Hey ng.

Findes der i php en funktion hvormed man kan gennemsøge en streng, og
som giver output true/false alt efter om parameteren forefindes eller ej?

--
mvh. L[x] - www.ionline.dk

 
 
Henrik Hansen (12-11-2004)
Kommentar
Fra : Henrik Hansen


Dato : 12-11-04 13:14

"L[x]" <invalid@invalid.invalid> writes:

> Hey ng.
>
> Findes der i php en funktion hvormed man kan gennemsøge en streng, og
> som giver output true/false alt efter om parameteren forefindes eller
> ej?

strstr() muligtvis ?

--
Henrik Hansen

L[x] (12-11-2004)
Kommentar
Fra : L[x]


Dato : 12-11-04 13:15

Henrik Hansen wrote:

> strstr() muligtvis ?
>

Ja, det er en mulighed, men den returnerer, så vidt jeg har forstået,
kun false hvis parameteren ikke findes (som de fleste streng
funktioner), og ellers resten af strengen, fra og med parameteren.

--
mvh. L[x] - www.ionline.dk

Peter Brodersen (12-11-2004)
Kommentar
Fra : Peter Brodersen


Dato : 12-11-04 13:35

On Fri, 12 Nov 2004 13:15:06 +0100, "L[x]" <invalid@invalid.invalid>
wrote:

>> strstr() muligtvis ?
>Ja, det er en mulighed, men den returnerer, så vidt jeg har forstået,
>kun false hvis parameteren ikke findes (som de fleste streng
>funktioner), og ellers resten af strengen, fra og med parameteren.

strstr() === FALSE
strpos() === FALSE

... vil give dig et boolsk resultat, hvis det er det, du er ude efter.
--
- Peter Brodersen

L[x] (12-11-2004)
Kommentar
Fra : L[x]


Dato : 12-11-04 13:45

Peter Brodersen wrote:

> strstr() === FALSE
> strpos() === FALSE
>
> ... vil give dig et boolsk resultat, hvis det er det, du er ude efter.

Det var det sådan set. Jeg er dog nødt til at bede dig om at forklare
ovenstående nærmere.
--
mvh. L[x] - www.ionline.dk

Peter Brodersen (12-11-2004)
Kommentar
Fra : Peter Brodersen


Dato : 12-11-04 13:54

On Fri, 12 Nov 2004 13:45:02 +0100, "L[x]" <invalid@invalid.invalid>
wrote:

>> strstr() === FALSE
>> strpos() === FALSE
>>
>> ... vil give dig et boolsk resultat, hvis det er det, du er ude efter.
>
>Det var det sådan set. Jeg er dog nødt til at bede dig om at forklare
>ovenstående nærmere.

strstr() og strpos() returnerer begge (boolsk) FALSE, hvis den søgte
streng ikke optræder.

I nogle tilfælde kan de returnere andre værdier, der også kan
evalueres til FALSE. strstr kan fx returnere "0" (hvis det er det, man
søger efter, og får returneret dette fra strengen), og strpos() kan
returnere 0, hvis det, man søger efter, er i starten af strengen.

Ved så at bruge === , tjekker vi både at værdien er den samme (altså,
at begge dele af udtrykket er FALSE), men også at typen er den samme.

Kig på eksempel 1 (og kommentarerne i kildeteksten) på:
http://dk2.php.net/strpos
--
- Peter Brodersen

L[x] (12-11-2004)
Kommentar
Fra : L[x]


Dato : 12-11-04 14:18

Peter Brodersen wrote:

> strstr() og strpos() returnerer begge (boolsk) FALSE, hvis den søgte
> streng ikke optræder.
>
> I nogle tilfælde kan de returnere andre værdier, der også kan
> evalueres til FALSE. strstr kan fx returnere "0" (hvis det er det, man
> søger efter, og får returneret dette fra strengen), og strpos() kan
> returnere 0, hvis det, man søger efter, er i starten af strengen.
>
> Ved så at bruge === , tjekker vi både at værdien er den samme (altså,
> at begge dele af udtrykket er FALSE), men også at typen er den samme.
>
> Kig på eksempel 1 (og kommentarerne i kildeteksten) på:
> http://dk2.php.net/strpos

Det vil med andre ord sige, at hvis jeg laver noget ligende dette:

$output = strstr($streng, 'qwe');
if(false == $output) {
   echo "false";
}
else {
   echo "true";
}

...så vil jeg kunne ricikere et galt output, men hvis jeg bruger === i
stedet for == vil det være korrekt hver gang?

--
mvh. L[x] - www.ionline.dk

Peter Brodersen (12-11-2004)
Kommentar
Fra : Peter Brodersen


Dato : 12-11-04 14:21

On Fri, 12 Nov 2004 14:18:15 +0100, "L[x]" <invalid@invalid.invalid>
wrote:

>..så vil jeg kunne ricikere et galt output, men hvis jeg bruger === i
>stedet for == vil det være korrekt hver gang?

Lige præcis - som nævnt i http://dk2.php.net/strpos , eksempel 1 :)

--
- Peter Brodersen

L[x] (12-11-2004)
Kommentar
Fra : L[x]


Dato : 12-11-04 14:25

Peter Brodersen wrote:

> Lige præcis - som nævnt i http://dk2.php.net/strpos , eksempel 1 :)

Jeg takker. Det vil dermed sige at der ikke i php findes en
præfabrikeret streng funktion, som udelukkende returnerer true/false.
Korrekt?

--
mvh. L[x] - www.ionline.dk

Janf (12-11-2004)
Kommentar
Fra : Janf


Dato : 12-11-04 18:43

L[x] wrote:
> Henrik Hansen wrote:
>
>> strstr() muligtvis ?
>>
>
> Ja, det er en mulighed, men den returnerer, så vidt jeg har forstået,
> kun false hvis parameteren ikke findes (som de fleste streng
> funktioner), og ellers resten af strengen, fra og med parameteren.
>
(strstr(...) != false)

--
Jan Fjeldmark mailto:janf@janf.dk http://janf.dk/
Hvad du end tror du er, så er du altid meget mere.

Peter Brodersen (13-11-2004)
Kommentar
Fra : Peter Brodersen


Dato : 13-11-04 02:15

On Fri, 12 Nov 2004 18:43:19 +0100, Janf <janf@janf.dk> wrote:

>(strstr(...) != false)

Det bør være !== - ellers risikerer man fx følgende uventede resultat:

<?php
$string = "543210";
if (strstr($string,"0") != false) { // giver uventet resultat pga. !=
print "true";
}
?>

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste