Avatar billede barefoot Nybegynder
12. april 2001 - 16:38 Der er 9 kommentarer og
1 løsning

Søgning i variabel

Jeg skal vide hvor mange gange en bogstavekombination optræderi en variabel.

Jeg brugte denne funktion:
$text = \"hej i php forumet\";
ereg (\"php\", $text, $res);

Det var så meningen af arrayet $res skulle fortælle mig hvor mange gange \"php\" opstådte i $text.
Men uanset hvad indeholder $res 10 pladser
Avatar billede mortenfn Nybegynder
12. april 2001 - 17:03 #1
$var=split(\" \",$text);
while($t<10){
if($text[$t]==\"php\")$a++;}
$t++;
}
echo $a;
Avatar billede barefoot Nybegynder
12. april 2001 - 17:40 #2
Hvorfor har du sat $t<10??
Vi ved jo ikke om der er flere resultater....
Avatar billede mortenfn Nybegynder
12. april 2001 - 17:40 #3
$res 10 pladser
Avatar billede mortenfn Nybegynder
12. april 2001 - 17:45 #4
du får lige et ordenligt svar 2.sec.
Avatar billede mortenfn Nybegynder
12. april 2001 - 17:48 #5
$var=split(\" \",$text);
$a=count($text);
$t=0;
while($t<=$a{
if($text[$t]==\"php\")$a++;}
$t++;
}
echo $a;
Avatar billede mortenfn Nybegynder
12. april 2001 - 17:50 #6
for mange $a

$var=split(\" \",$text);
$b=count($text);
$t=0;
while($t<=$b{
if($text[$t]==\"php\")$a++;}
$t++;
}
echo $a;
Avatar billede barefoot Nybegynder
12. april 2001 - 17:57 #7
$var=split(\" \",$text);
$b=count($text);
$t=0;
while($t<=$b{
if($text[$t]==\"php\")$a++;}
$t++;
}
echo $a;

Du laver syntaksfejl i if-sætningen
Men selvom jeg retter det får a ikke nogen værdi....

Kunne man forresten ikke lave det lettere med en for-løkke:

$var=split(\" \",$text);
$b=count($text);
for($t = 0; $t <= $b; $t++){
  if($text[$t]==\"php\"){
      $a++;
      }
}
echo $a;
Men det virker heller ikke for a er stadig 0.
Også selvom jeg lige ovenover sætter $text = \"php og mere php\";
Avatar billede barefoot Nybegynder
12. april 2001 - 18:02 #8
Jeg troede at jeg skulle erstatte ereg-funktionen af løkken.
Nu virker det. Det hele kom til at se sådan ud:

if(ereg ($ord, $text, $res)){
    $var = split(\" \",$res);
    $b=count($res);
    for($t = 0; $t <= $b; $t++){
      if($res[$t]==\"php\"){
          $a++;
        }
    }
}   
echo $a;

Tak for hjælpen
Avatar billede barefoot Nybegynder
12. april 2001 - 18:04 #9
Okay, ikke helt.. Sådan er det:

if(ereg ($ord, $text, $res)){
    $var = split(\" \",$res);
    $b=count($res);
    for($t = 0; $t <= $b; $t++){
      if($res[$t]==\"php\"){
          $a++;
        }
    }
echo $a;
}
else{
  echo \"Der gik kage i søgningen\";
}
Avatar billede mortenfn Nybegynder
12. april 2001 - 18:04 #10
nu virker den den er testet

$text = \"php og mere php\";
$var=split(\" \",$text);
$b=count($var);
$t=0;$a=0; 
while($t<=$b){
if($var[$t]==\"php\"){$a++;}
$t++;
}
echo $a;  ?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester