Il vaut mieux vérifier avant qu'elle ne renvoie pas d'erreur, une parenthèse non fermée ou une division par zéro va entrainer une erreur.
if (preg_match('#(^[\d(]+[ +*()/\d-]*[\d)]+$)#', $txt)) {
...
...
}
Avec ce masque, on peut même remplacer toutes les opérations par leur resultat dans une chaîne quelconque.
Deux fonctions qui permettent écrire de l'arabe, du chinois, du russe...
sans se soucier de savoir si l'utilisateur a forcé le codage ou laissé le choix "codage auto" dans le navigateur.
Ma fonction utf8entities ne transforme pas les & en &. Ainsi si on passe "é" ou "é" ça imprime "é" à l'écran. Mais c'est vrai que ça peut être un bug vu que ça se comporte pas exactement comme htmlenti...
Deux fonctions qui permettent écrire de l'arabe, du chinois, du russe...
sans se soucier de savoir si l'utilisateur a forcé le codage ou laissé le choix "codage auto" dans le navigateur.
Ma fonction utf8entities ne transforme pas les & en &. Ainsi si on passe "é" ou "é" ça imprime "é" à l'écran. Mais c'est vrai que ça peut être un bug vu que ça se comporte pas exactement comme htmlenti...
Il vaut mieux vérifier avant qu'elle ne renvoie pas d'erreur, une parenthèse non fermée ou une division par zéro va entrainer une erreur.
if (preg_match('#(^[\d(]+[ +*()/\d-]*[\d)]+$)#', $txt)) {
...
...
}
Avec ce masque, on peut même remplacer toutes les opérations par leur resultat dans une chaîne quelconque.