Calculatie Parser
Een berekening uitvoeren zonder eval()? Dat kan met deze parser.
Gebaseerd op de bbcode parser van Richard van Velzen, hierbij bedankt.
Documentatie
Er zijn twee versies om het script aan te roepen: een voor versie < 5.3 (index_old.php) en een voor 5.3 (index.php). De laatste maakt gebruikt van anonymous functions, wat de code netter maakt.
Mogelijkheden:
Goede error afhandeling met exceptions
Alle standaard berekeningen ( +,-,/,*,^)
Vergelijkingen met =, klopt geeft 1, fout geeft 0
Wortels
Logaritmen
Getallen met de notatie 5.2E-3 (let op: grote E)
Constanten (nu alleen e en pi)
Faculteit (5! geeft 5*4*3*2*1= 120)
En het mooiste, je kan dit alles zelf aanpassen: met een zelfgeschreven functie kan je een operatie toevoegen!!!
Je kan zelf heel makkelijk operaties toevoegen met de syntax
2
3
$parser->addOperator($operatorName, $operatorSymbol, $operatorHierarchy, $operatorFunction, $variablePositions);
?>
De name en symbol spreken voor zich. Die hiƫrarchie is van Meneer Van Dalen Wacht Op Antwoord: Hoe hoger, hoe eerder hij uitgevoerd zal worden.
De function kan als string van de functienaam die je dan eerder hebt gedeclareerd, of als anonymous function (php 5.3).
Je kan ook constanten definiƫren met dezelfde syntax, gebruik alleen null voor hierarchy en OperatorRule::VAR_NONE als variablePositions.
De variabelen posities geeft aan waar de variabelen zitten, default is dit de const OperatorRule::VAR_BOTH, maar je kan ook, zoals bij een wortel, OperatorRule::VAR_AFTER of, zoals bij een faculteit, OperatorRule::VAR_BEFORE opgeven.
Dit is mijn eerste publieke (en complexe) script, alle complimenten en zeker ook kritiek is van harte welkom.
Voorbeeld: http://pimwebdesign.nl/calc/index_old.php?(e*2)log(3-6.2E-4)
Gesponsorde koppelingen
PHP script bestanden
Er zijn 18 reacties op 'Calculatie parser'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu