Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Laskun suorittaminen merkkijonosta

sane [03.01.2006 00:32:44]

#

Eli miten php:llä saa suoritettua merkkijonosta laskun tyyliin "5 * 2"? Olen yrittänyt evalia soveltaa, mutta en ole saanut toimimaan:/
eli seuraava koodi ei toimi, koska tulos tulee toisen funktion käyttöön, eli jos tuloksen saisi vaikka tallennettua muuttujaan.

$laskenta = "echo($yhtalo);";
eval($laskenta);

Antti Laaksonen [03.01.2006 00:41:21]

#

Voit sijoittaa laskun tuloksen muuttujaan tavallisesti. Jos kirjoitat suoritettavan koodin lainausmerkkien sisään, muuttujan tunnuksena oleva $-merkki pitää kuitenkin merkitä kenoviivan kanssa. Muuten molemmat merkkijonon muuttujat korvataan niitä vastaavilla arvoilla.

<?php
$yhtalo = "2*5";
$laskenta = "\$tulos = $yhtalo;";
eval($laskenta);
echo $tulos;
?>

Tämä koodi toimii, mutta muista olla varovainen. Funktio eval voi kutsua kaikkia PHP:n funktioita. Jos käyttäjä pääsee kirjoittamaan laskun suoraan, joku ilkimys voi koettaa lisätä siihen haitallisia funktiokutsuja.

kayttaja-2791 [03.01.2006 13:15:31]

#

https://www.ohjelmointiputka.net/koodivinkit/24771-php-laskutoimitusten-suorittaminen-merkkijonosta

Hiomaton mutta pitäisi toimia (ja olla turvallinen kun evalia ei käytetä laisinkaan) :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta