Je ne m'appellerais pas un maître en ce qui concerne regex, je connais à peu près les bases. J'ai joué avec, mais je n'arrive pas à obtenir le résultat souhaité. Donc, si quelqu'un m'aiderait, je l'apprécierais vraiment! J'essaie de vérifier si des mots indésirables existent dans une chaîne. Je travaille sur un projet mathématique, et je vais utiliser eval() pour calculer la chaîne, donc je dois m'assurer que c'est sûr.PHP - Aide avec regex?
La chaîne peut contenir (juste par exemple maintenant, je vais ajouter plus de fonctions plus tard) les mots suivants: (lire les commentaires)
floor() // spaces or numbers are allowed between the() chars. If possible, i'd also like to allow other math functions inside, so it'd look like: floor(floor(8)*1).
It may contain any digit, any math sign (+ - * /) and dots/commas (,.) anywhere in the string
Pour être clair, voici un autre exemple: Si une chaîne comme celui-ci est passé, je ne suis pas veulent que ça passe:
9*9 + include('somefile')/floor(2) // Just a random example on something that's not allowed
maintenant que je pense à ce sujet, il semble un peu compliqué. J'espère que vous pouvez au moins me donner quelques indices.
Merci à l'avance, -Anthony
Edit: Ceci est un peu hors sujet, mais si vous connaissez une meilleure façon de calculer les fonctions mathématiques, s'il vous plaît suggérer. J'ai cherché une classe/fonction de maths sûre qui calcule une chaîne d'entrée, mais je n'en ai pas encore trouvé.
Je vais jeter un oeil à cette classe, merci! Mais pourquoi ne devrais-je pas utiliser eval dans ce cas? Si je le filtre pour les mauvais caractères/mots, et refuse l'accès s'il ne passe pas - comment pourraient-ils percer? – Anthony
Le problème avec eval dans ce cas est que vous ne pouvez pas filtrer toutes les possibilités. –
Eh bien, presque? Je veux dire, si autre chose que les caractères/mots autorisés sont entrés, l'eval ne sera pas déclenché. Je ne vois pas comment quelque chose de "mauvais" pourrait être entré, et si l'utilisateur entre seulement des caractères/mots valides, rien ne devrait aller mal? Je suis juste curieux, c'est intéressant et bon à savoir. J'ai téléchargé evalMath et cela fonctionne merveilleusement, merci pour le conseil. Même si la fonction eval fonctionne, cela semble plus sûr - après tout, c'est ce que je cherchais en première place. – Anthony