16. januar 2006 - 16:01Der er
16 kommentarer og 1 løsning
Lommeregner regner ikke sammen
Jeg sidder og prøver at lave en lomme regner, men den virker ikke optimalt.. Eftersom den ikke regner sammen, men bare udskriver. Her er koden: ------------------------------------------------------------------ <? $antal = strlen($_POST[felt]); $tael = explode(" ", $_POST[felt]); for($i = 0 ; $i <= $antal ; $i++){ $resultat = $resultat . $tael[$i]; } echo "<b>Resultat:</b> <u>".$resultat."</u>"; ?> ------------------------------------------------------------------
jeg har bare et <input type="text" name="felt"> som man kan skrive f.eks (8*2)+2 i, og så skal man kunne få regnet det ud.. Men kan ikke få det til at virke ordentligt..
Som sagt, så er en sådan parsing-funktion ikke nem at lave. Hvis eval ikke kan finde ud af det (og det kan den godt, men så skal du ud i noget rod), så skal det laves manuelt, og det er svært.
Er der ikke nogen som kan gøre sådan at scriptet udfører regnestykket i stedet for bare at udskrive det? Det sådan set bare det jeg vil frem til :-) Men det er måske ikke muligt i den måde jeg gør det på??
Du skal parse strengen til at matematisk udtryk. Dette gøres ikke "bare", men via en eller anden parser. eval() kan de mest grundlæggende ting samt bruge alle php's funktioner, men skal du have mere, skal du bruge for eksempel en af de to ting, som gentoo2005 smed et link til herover.
Man kan godt få den til at gøre ting, som du ikke ønsker, så du kan ikke bruge dette, hvis det skal være sikkert på nogen som helst måde. Vil du gøre det offentligt og sikkert, så kig på de to links, som gentoo2005 smed.
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.